import type { DerivationIndexEntry } from './SigningWallet/HDWallet/HDWallet'; /** All supported wallet type identifiers. */ export declare const WALLET_TYPES: readonly ["phrase", "seed", "xpriv", "privateKey", "xpub", "publicKey"]; /** Union of all wallet type string literals. */ export type WalletType = (typeof WALLET_TYPES)[number]; /** Wallet types that support encryption. */ export declare const SECRET_WALLET_TYPES: readonly ["phrase", "seed", "xpriv", "privateKey"]; /** Union of secret (signing) wallet type string literals. */ export type SecretWalletType = (typeof SECRET_WALLET_TYPES)[number]; interface EncryptedFields { ciphertext: string; iv: string; salt: string; } interface HDRestoreFields { masterPublicKey?: string; derivationIndex?: DerivationIndexEntry[]; } /** Serialized form of a {@link PhraseWallet}. */ export type PhraseWalletSerialized = ({ type: 'phrase'; phrase: string; } & HDRestoreFields) | ({ type: 'phrase'; } & EncryptedFields & HDRestoreFields); /** Serialized form of a {@link SeedWallet}. */ export type SeedWalletSerialized = ({ type: 'seed'; seed: string; } & HDRestoreFields) | ({ type: 'seed'; } & EncryptedFields & HDRestoreFields); /** Serialized form of an {@link XprivWallet}. */ export type XprivWalletSerialized = ({ type: 'xpriv'; xpriv: string; } & HDRestoreFields) | ({ type: 'xpriv'; } & EncryptedFields & HDRestoreFields); /** Serialized form of a {@link PrivateKeyWallet}. */ export type PrivateKeyWalletSerialized = { type: 'privateKey'; privateKey: string; publicKey?: string; } | ({ type: 'privateKey'; } & EncryptedFields & { publicKey?: string; }); /** Serialized form of an {@link XpubWallet}. */ export interface XpubWalletSerialized { type: 'xpub'; xpub: string; } /** Serialized form of a {@link PublicKeyWallet}. */ export interface PublicKeyWalletSerialized { type: 'publicKey'; publicKey: string; } /** Union of all serialized wallet shapes. Validate with {@link isValidSerialized}. */ export type WalletSerialized = PhraseWalletSerialized | SeedWalletSerialized | XprivWalletSerialized | PrivateKeyWalletSerialized | XpubWalletSerialized | PublicKeyWalletSerialized; export {};