import { BTCConfig, InscriptionIdentifier, SignPsbtOptions, IBTCProvider, Network } from '../../../types';
export declare const WALLET_PROVIDER_NAME = "Keystone";
export declare class KeystoneProvider implements IBTCProvider {
    private keystoneWalletInfo;
    private viewSDK;
    private dataSdk;
    private config;
    constructor(_wallet: any, config: BTCConfig);
    /**
     * Connects the staking app to the Keystone device and retrieves the necessary information.
     * @returns A Promise that resolves to the current instance of the class.
     * @throws An error if there is an issue reading the QR code or retrieving the extended public key.
     */
    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, type: "bip322-simple" | "ecdsa") => Promise<string>;
    /**
     * https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki
     * signMessageBIP322 signs a message using the BIP322 standard.
     * @param message
     * @returns signature
     */
    signMessageBIP322: (message: string) => Promise<string>;
    signMessageECDSA: (message: string) => Promise<string>;
    getInscriptions: () => Promise<InscriptionIdentifier[]>;
    on: () => void;
    off: () => void;
    getWalletProviderName: () => Promise<string>;
    getWalletProviderIcon: () => Promise<string>;
    /**
     * Sign the PSBT with the Keystone device.
     *
     * @param psbtHex - The PSBT in hex format.
     * @param options - Optional signing parameters.
     * @returns The signed PSBT.
     * */
    private sign;
    /**
     * Add the BIP32 derivation information for each input.
     * The Keystone device is stateless, so it needs to know which key to use to sign the PSBT.
     * Therefore, add the Taproot BIP32 derivation information to the PSBT.
     * https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#Specification
     * @param psbt - The PSBT object.
     * @param inputIndexes - Optional array of input indexes to enhance. If not provided, all inputs are enhanced.
     * @returns The PSBT object with the BIP32 derivation information added.
     */
    private enhancePsbt;
    deriveContextHash: (appName: string, context: string) => Promise<string>;
}
