import { type MLDSASignature, type Unisat, UnisatChainType, UnisatSigner } from '@btc-vision/transaction';
import { AbstractRpcProvider } from 'opnet';
import { type WalletConnectNetwork } from '../types';
import { SupportedWallets } from './supported-wallets';
import type { ControllerConnectAccounts, ControllerErrorResponse, ControllerResponse, WalletConnectWallet } from './types.ts';
declare class WalletController {
    private static wallets;
    private static currentWallet;
    static getWallets: () => WalletConnectWallet[];
    static isWalletInstalled(wallet: string): boolean;
    static getWalletType(): SupportedWallets | null;
    static getWalletInstance(): Unisat | null;
    static getProvider(): Promise<AbstractRpcProvider | null>;
    static getSigner(): Promise<UnisatSigner | null>;
    static convertChainTypeToNetwork(chainType: UnisatChainType): WalletConnectNetwork | null;
    static getNetwork(): Promise<WalletConnectNetwork | null>;
    static getPublicKey(): Promise<string | null>;
    static canAutoConnect(walletName: string): Promise<boolean>;
    static connect(walletName: string): Promise<ControllerResponse<ControllerConnectAccounts | ControllerErrorResponse>>;
    static disconnectIfWalletChanged(newWallet: WalletConnectWallet): Promise<void>;
    static disconnect(): Promise<void>;
    static setAccountsChangedHook(fn: (accounts: string[]) => void): void;
    static setDisconnectHook(fn: () => void): void;
    static setChainChangedHook(fn: (network: WalletConnectNetwork) => void): void;
    static removeAccountsChangedHook(): void;
    static removeDisconnectHook(): void;
    static removeChainChangedHook(): void;
    static registerWallet: (wallet: WalletConnectWallet) => void;
    static unbindHooks(): void;
    static getMLDSAPublicKey(): Promise<string | null>;
    static getHashedMLDSAKey(): Promise<string | null>;
    static signMLDSAMessage(message: string): Promise<MLDSASignature | null>;
    static verifyMLDSASignature(message: string, signature: MLDSASignature): Promise<boolean>;
}
export { WalletController };
//# sourceMappingURL=controller.d.ts.map