import { WalletEventType, WalletEvent, WalletOptions, __WalletMethod__ } from '../types/wallet';
import { Client } from '../client';
import { SecretManager } from '../secret_manager';
export declare class WalletMethodHandler {
    methodHandler: any;
    /**
     * @param methodHandler The Rust method handler created in `WalletMethodHandler.create()`.
     */
    constructor(methodHandler: any);
    /**
     * @param options The wallet options.
     */
    static create(options: WalletOptions): Promise<WalletMethodHandler>;
    /**
     * Call a wallet method on the Rust backend.
     *
     * @param method The wallet method to call.
     * @returns A promise that resolves to a JSON string response holding the result of the wallet method.
     */
    callMethod(method: __WalletMethod__): Promise<string>;
    /**
     * Listen to wallet events.
     *
     * @param eventTypes The wallet event types to listen for.
     * @param callback The callback function to call when an event is received.
     */
    listen(eventTypes: WalletEventType[], callback: (error: Error, event: WalletEvent) => void): Promise<void>;
    destroy(): Promise<void>;
    getClient(): Promise<Client>;
    /**
     * Get the secret manager associated with the wallet.
     */
    getSecretManager(): Promise<SecretManager>;
}
