import { IEVMWallet, AssetBalance, EstimatedFeeData } from "@m3s/wallet";
import { AdapterArguments, NetworkConfig } from "@m3s/shared";
/**
 * Specific options for this wallet adapter template.
 */
export interface WalletTemplateOptions {
    /** Required string option - describe what this does */
    option_1: string;
    /** Required nested object option */
    option_2: {
        /** Required number sub-option */
        option_2_1: number;
        /** Required string array sub-option */
        option_2_2: string[];
    };
    /** Optional BigInt option - describe what this does */
    option_3?: BigInt;
}
interface args extends AdapterArguments<WalletTemplateOptions> {
}
/**
 * Template Wallet Adapter
 */
export declare class WalletTemplateAdapter implements IEVMWallet {
    readonly name: string;
    readonly version: string;
    private initialized;
    private constructor();
    static create(args: args): Promise<WalletTemplateAdapter>;
    initialize(): Promise<void>;
    isInitialized(): boolean;
    disconnect(): void;
    isConnected(): boolean;
    getAccounts(): Promise<string[]>;
    getBalance(): Promise<AssetBalance>;
    callContract(to: string, data: string): Promise<string>;
    getNetwork(): Promise<NetworkConfig>;
    setProvider(): Promise<void>;
    on(): void;
    off(): void;
    signMessage(): Promise<string>;
    verifySignature(): Promise<boolean>;
    sendTransaction(): Promise<string>;
    signTransaction(): Promise<string>;
    signTypedData(): Promise<string>;
    getGasPrice(): Promise<bigint>;
    estimateGas(): Promise<EstimatedFeeData>;
    getTransactionReceipt(): Promise<any>;
    getAllChainRpcs(): Record<string, string[]>;
    updateAllChainRpcs(multiChainRpcs: Record<string, string[]>): Promise<void>;
}
export {};
//# sourceMappingURL=wallet.d.ts.map