import { BTCConfig, InscriptionIdentifier, SignPsbtOptions, IBTCProvider, Network } from '../../../types';
/**
 * Derivation configuration for Ledger wallet
 * - purpose 84: Native SegWit (wpkh) addresses - BIP84
 * - purpose 86: Taproot (tr) addresses - BIP86
 */
interface DerivationConfig {
    purpose: 84 | 86;
    addressIndex: number;
}
export declare const WALLET_PROVIDER_NAME = "Ledger";
export declare class LedgerProviderV2 implements IBTCProvider {
    private ledgerWalletInfo;
    private config;
    private derivationConfig;
    constructor(_wallet: any, config: BTCConfig);
    /**
     * Set the derivation configuration for address generation
     * @param config - Partial derivation config to merge with current settings
     */
    setDerivationConfig(config: Partial<DerivationConfig>): void;
    /**
     * Get the current derivation configuration
     * @returns A copy of the current derivation config
     */
    getDerivationConfig(): DerivationConfig;
    private createTransport;
    private getNetworkDerivationIndex;
    private getDerivationPath;
    private createAppClient;
    private getWalletPolicy;
    private getLedgerAccount;
    connectWallet: () => Promise<void>;
    getAddress: () => Promise<string>;
    getPublicKeyHex: () => Promise<string>;
    signPsbt: (psbtHex: string, options?: SignPsbtOptions) => Promise<string>;
    signPsbts: (psbtsHexes: string[], options?: SignPsbtOptions[]) => Promise<string[]>;
    getNetwork: () => Promise<Network>;
    signMessage: (message: string) => Promise<string>;
    getInscriptions: () => Promise<InscriptionIdentifier[]>;
    on: () => void;
    off: () => void;
    getWalletProviderName: () => Promise<string>;
    getWalletProviderIcon: () => Promise<string>;
    deriveContextHash: (appName: string, context: string) => Promise<string>;
}
export {};
