import type { BIP32Interface } from "../bip32.js";
import { BIP32 } from "../bip32.js";
import { Triple } from "../triple.js";
import { WasmRootWalletKeys } from "../wasm/wasm_utxo.js";
/**
 * IWalletKeys represents the various forms that wallet keys can take
 * before being converted to a RootWalletKeys instance
 */
export type IWalletKeys = {
    triple: Triple<BIP32Interface>;
    derivationPrefixes: Triple<string>;
};
export type WalletKeysArg = 
/** Just an xpub triple, will assume default derivation prefixes  */
Triple<string>
/** Compatible with utxolib RootWalletKeys */
 | IWalletKeys
/** RootWalletKeys instance */
 | RootWalletKeys;
/**
 * RootWalletKeys represents a set of three extended public keys with their derivation prefixes
 */
export declare class RootWalletKeys {
    private _wasm;
    private constructor();
    /**
     * Create a RootWalletKeys instance from a WasmRootWalletKeys instance (internal use)
     * @internal
     */
    static fromWasm(wasm: WasmRootWalletKeys): RootWalletKeys;
    /**
     * Create a RootWalletKeys from various input formats
     * @param keys - Can be a triple of xpub strings, an IWalletKeys object, or another RootWalletKeys instance
     * @returns A RootWalletKeys instance
     */
    static from(keys: WalletKeysArg): RootWalletKeys;
    /**
     * Create a RootWalletKeys from three xpub strings
     * Uses default derivation prefix of m/0/0 for all three keys
     * @param xpubs - Triple of xpub strings
     * @returns A RootWalletKeys instance
     */
    static fromXpubs(xpubs: Triple<string>): RootWalletKeys;
    /**
     * Create a RootWalletKeys from three xpub strings with custom derivation prefixes
     * @param xpubs - Triple of xpub strings
     * @param derivationPrefixes - Triple of derivation path strings (e.g., ["0/0", "0/0", "0/0"])
     * @returns A RootWalletKeys instance
     */
    static withDerivationPrefixes(xpubs: Triple<string>, derivationPrefixes: Triple<string>): RootWalletKeys;
    /**
     * Get the user key (first xpub)
     * @returns The user key as a BIP32 instance
     */
    userKey(): BIP32;
    /**
     * Get the backup key (second xpub)
     * @returns The backup key as a BIP32 instance
     */
    backupKey(): BIP32;
    /**
     * Get the BitGo key (third xpub)
     * @returns The BitGo key as a BIP32 instance
     */
    bitgoKey(): BIP32;
    /**
     * Get the underlying WASM instance (internal use only)
     * @internal
     */
    get wasm(): WasmRootWalletKeys;
}
