import { KeyId } from "./KeyId.js";
import { PassphraseEntry } from "./PassphraseEntry.js";
import { type Web3AccountOptions, Web3Account } from "./Web3Account.js";
import { type AccountDeletion, type AccountGeneration, type AccountImportation, type AccountMetadata, type AccountRetrieval, Address, type ImportableKeyStore, RawPrivateKey } from "@planetarium/account";
export { getDefaultWeb3KeyStorePath } from "#path";
export interface Web3KeyStoreOptions {
    path?: string;
    passphraseEntry: PassphraseEntry;
}
export declare function parseKeyFilename(name: string): undefined | {
    keyId: KeyId;
    createdAt?: Date;
};
export interface Web3KeyMetadata {
    address?: Address;
}
export declare class Web3KeyStore implements ImportableKeyStore<KeyId, Web3Account, Web3KeyMetadata> {
    #private;
    readonly path: string;
    constructor(options: Web3KeyStoreOptions & Partial<Web3AccountOptions>);
    list(): AsyncIterable<AccountMetadata<KeyId, Web3KeyMetadata>>;
    get(keyId: Readonly<KeyId>): Promise<AccountRetrieval<KeyId, Web3Account, Web3KeyMetadata>>;
    generate(metadata?: Partial<Web3KeyMetadata>): Promise<AccountGeneration<KeyId, Web3Account>>;
    delete(keyId: Readonly<KeyId>): Promise<AccountDeletion<KeyId>>;
    import(privateKey: RawPrivateKey, metadata?: Partial<Web3KeyMetadata>): Promise<AccountImportation<KeyId>>;
}
export default Web3KeyStore;
