///
import { Account, AddressString, NetworkType, UserAccount, UserAccountID } from '@neo-one/client-common';
import { Observable } from 'rxjs';
import { KeyStore } from '../LocalUserAccountProvider';
export interface HDAccount {
readonly identifier: Identifier;
readonly userAccount: UserAccount;
}
export interface HDProvider {
readonly getAccount: (network: NetworkType, address: AddressString) => Promise;
readonly getNetworks: () => readonly NetworkType[];
readonly networks$: Observable;
}
export interface HDHandler {
readonly byteLimit?: number;
readonly suffix?: string;
readonly scanAccounts: (network: NetworkType, maxOffset?: number) => Promise>>;
readonly sign: (options: {
readonly message: Buffer;
readonly account: Identifier;
}) => Promise;
readonly close: () => Promise;
}
export declare class HDKeyStore implements KeyStore {
readonly byteLimit?: number;
readonly currentUserAccount$: Observable;
readonly userAccounts$: Observable;
private readonly provider;
private readonly handler;
private readonly accountsSubscription;
private readonly logger;
private readonly currentUserAccountInternal$;
private readonly userAccountsInternal$;
private readonly accountsInternal$;
private readonly accounts$;
constructor(provider: HDProvider, handler: HDHandler);
getCurrentUserAccount(): UserAccount | undefined;
getUserAccounts(): readonly UserAccount[];
getNetworks(): readonly NetworkType[];
selectUserAccount(id?: UserAccountID): Promise;
sign({ account, message, }: {
readonly account: UserAccountID;
readonly message: string;
}): Promise;
close(): Promise;
private get accounts();
private getHDAccount;
private capture;
}