import { BIP340InitKeygenResult, BIP340KeygenResult, DynamicNativeSdkInterface } from '.';
export declare class BIP340 {
        protected readonly NATIVE: Promise<DynamicNativeSdkInterface>;
        protected readonly URL: string;
        protected constructor(native: Promise<DynamicNativeSdkInterface>, url: string);
        initKeygen(): Promise<BIP340InitKeygenResult>;
        exportID(keygenResult: BIP340KeygenResult | string): Promise<string>;
        createRoom(numParties: number, apiKey: string): Promise<string>;
        keygen(roomUuid: string, numParties: number, threshold: number, keygenInit: BIP340InitKeygenResult, keygenIds: string[]): Promise<BIP340KeygenResult>;
        sign(roomUuid: string, keygenResult: BIP340KeygenResult | string, msg: Uint8Array | string, derivationPath?: Uint32Array, tweak?: Uint8Array | string): Promise<Uint8Array>;
        refresh(roomUuid: string, keygenResult: BIP340KeygenResult | string): Promise<BIP340KeygenResult>;
        reshareNewParty(roomUuid: string, oldThreshold: number, newThreshold: number, keygenInit: BIP340InitKeygenResult, keygenIds: string[]): Promise<BIP340KeygenResult>;
        reshareRemainingParty(roomUuid: string, newThreshold: number, keygenResult: BIP340KeygenResult | string, keygenIds: string[]): Promise<BIP340KeygenResult>;
        deriveTweakPubkey(keygenResult: BIP340KeygenResult | string, derivationPath?: Uint32Array, tweak?: Uint8Array | string): Promise<Uint8Array>;
        getXpub(keygenResult: BIP340KeygenResult | string): Promise<string>;
        deriveTweakPubkeyFromXpub(Xpub: string, derivationPath?: Uint32Array, tweak?: Uint8Array | string): Promise<Uint8Array>;
        exportFullPrivateKey(roomUuid: string, keygenResult: BIP340KeygenResult | string, toExportID: string): Promise<string | undefined>;
        derivePrivateKeyFromXpriv(xpriv: string, derivationPath?: Uint32Array): Promise<string>;
        offlineExportFullPrivateKey(keygenResults: BIP340KeygenResult[] | string[]): Promise<string>;
        importPrivateKeyRecipient(roomUuid: string, threshold: number, keygenInit: BIP340InitKeygenResult, keygenIds: string[]): Promise<BIP340KeygenResult>;
        importPrivateKeyImporter(roomUuid: string, threshold: number, privateKey: string, keygenInit: BIP340InitKeygenResult, keygenIds: string[], chaincode?: Uint8Array | string): Promise<BIP340KeygenResult>;
}
