import { type PublicKey, type Signature, type UniversalSigner } from '@btc-vision/ecpair';
import { type Network } from '@btc-vision/bitcoin';
import { MLDSASecurityLevel, type QuantumBIP32Interface } from '@btc-vision/bip32';
export interface SignedMessage {
    readonly signature: Uint8Array;
    readonly message: Uint8Array;
}
export interface MLDSASignedMessage {
    readonly signature: Uint8Array;
    readonly message: Uint8Array;
    readonly publicKey: Uint8Array;
    readonly securityLevel: MLDSASecurityLevel;
}
declare class MessageSignerBase {
    sha256(message: Uint8Array): Uint8Array;
    trySignSchnorrWithOPWallet(message: Uint8Array | string): Promise<SignedMessage | null>;
    trySignECDSAWithOPWallet(message: Uint8Array | string): Promise<SignedMessage | null>;
    trySignMLDSAWithOPWallet(message: Uint8Array | string): Promise<MLDSASignedMessage | null>;
    signMessageAuto(message: Uint8Array | string, keypair?: UniversalSigner): Promise<SignedMessage>;
    signMessageECDSAAuto(message: Uint8Array | string, keypair?: UniversalSigner): Promise<SignedMessage>;
    tweakAndSignMessageAuto(message: Uint8Array | string, keypair?: UniversalSigner, network?: Network): Promise<SignedMessage>;
    signMLDSAMessageAuto(message: Uint8Array | string, mldsaKeypair?: QuantumBIP32Interface): Promise<MLDSASignedMessage>;
    verifyMLDSAWithOPWallet(message: Uint8Array | string, signature: MLDSASignedMessage): Promise<boolean | null>;
    getMLDSAPublicKeyFromOPWallet(): Promise<Uint8Array | null>;
    tweakAndSignMessage(keypair: UniversalSigner, message: Uint8Array | string, network: Network): SignedMessage;
    signMessage(keypair: UniversalSigner, message: Uint8Array | string): SignedMessage;
    signECDSA(keypair: UniversalSigner, message: Uint8Array | string): SignedMessage;
    verifyECDSASignature(publicKey: Uint8Array | PublicKey, message: Uint8Array | string, signature: Uint8Array | Signature): boolean;
    verifySignature(publicKey: Uint8Array, message: Uint8Array | string, signature: Uint8Array): boolean;
    tweakAndVerifySignature(publicKey: Uint8Array, message: Uint8Array | string, signature: Uint8Array): boolean;
    signMLDSAMessage(mldsaKeypair: QuantumBIP32Interface, message: Uint8Array | string): MLDSASignedMessage;
    verifyMLDSASignature(mldsaKeypair: QuantumBIP32Interface, message: Uint8Array | string, signature: Uint8Array): boolean;
    isOPWalletAvailable(): boolean;
    private getOPWallet;
}
export declare const MessageSigner: MessageSignerBase;
export {};
//# sourceMappingURL=MessageSigner.d.ts.map