class DeterministicKeyChain implements EncryptableKeyChain {

    @Override
    public DeterministicKeyChain toDecrypted(CharSequence password) {
        checkNotNull(password);
        checkArgument(password.length() > 0);
        KeyCrypter crypter = getKeyCrypter();
        checkState(crypter != null, "Chain not encrypted");
        KeyParameter derivedKey = crypter.deriveKey(password);
        return toDecrypted(derivedKey);
    }

    public  DeterministicKeyChain(SecureRandom random);
    public  DeterministicKeyChain(SecureRandom random, int bits);
    public  DeterministicKeyChain(SecureRandom random, int bits, String passphrase, long seedCreationTimeSecs);
    public  DeterministicKeyChain(byte[] entropy, String passphrase, long seedCreationTimeSecs);
    protected  DeterministicKeyChain(DeterministicSeed seed);
    public  DeterministicKeyChain(DeterministicSeed seed, ImmutableList<ChildNumber> accountPath);
    public  DeterministicKeyChain(DeterministicKey watchingKey);
    public  DeterministicKeyChain(DeterministicKey key, boolean isFollowing, boolean isWatching);
    protected  DeterministicKeyChain(DeterministicKey watchKey, boolean isFollowing);
    protected  DeterministicKeyChain(DeterministicSeed seed, @Nullable KeyCrypter crypter);
    protected  DeterministicKeyChain(DeterministicSeed seed, @Nullable KeyCrypter crypter,
                                    ImmutableList<ChildNumber> accountPath);
    protected  DeterministicKeyChain(KeyCrypter crypter, KeyParameter aesKey, DeterministicKeyChain chain);

}