import AccountBaseFactory from './BaseFactory.js';
import AccountMemory from './Memory.js';
import { Encoded } from '../utils/encoder.js';
export declare const ED25519_CURVE: Buffer;
interface KeyTreeNode {
    secretKey: Uint8Array;
    chainCode: Uint8Array;
}
export declare function deriveKey(message: Uint8Array, key: Uint8Array): KeyTreeNode;
export declare function derivePathFromKey(key: KeyTreeNode, segments: readonly number[]): KeyTreeNode;
interface Wallet {
    secretKey: Encoded.Bytearray;
    chainCode: Encoded.Bytearray;
}
/**
 * A factory class that generates instances of AccountMemory based on provided mnemonic phrase.
 * @category account
 */
export default class AccountMnemonicFactory extends AccountBaseFactory {
    #private;
    /**
     * @param mnemonicOrWalletOrSeed - BIP39-compatible mnemonic phrase or a wallet/seed derived from
     * mnemonic
     */
    constructor(mnemonicOrWalletOrSeed: string | Wallet | Uint8Array);
    /**
     * Get a wallet to initialize AccountMnemonicFactory instead mnemonic phrase.
     * In comparison with mnemonic, the wallet can be used to derive aeternity accounts only.
     */
    getWallet(): Promise<Wallet>;
    /**
     * The same as `getWallet` but synchronous.
     */
    getWalletSync(): Wallet;
    /**
     * Get an instance of AccountMemory for a given account index.
     * @param accountIndex - Index of account
     */
    initialize(accountIndex: number): Promise<AccountMemory>;
    /**
     * The same as `initialize` but synchronous.
     */
    initializeSync(accountIndex: number): AccountMemory;
}
export {};
