import type { SignAuthorizationParams, SignedAuthorization } from '@pushchain/core';
import { BaseWalletProvider } from '../BaseWalletProvider';
import { ChainType, ITypedData } from '../../../types/wallet.types';
export declare class MetamaskProvider extends BaseWalletProvider {
    private sdk;
    constructor();
    isInstalled: () => Promise<boolean>;
    getProvider: () => import("@metamask/sdk").SDKProvider | undefined;
    getSigner: () => Promise<import("ethers").JsonRpcSigner>;
    connect(chainType: ChainType): Promise<{
        caipAddress: string;
    }>;
    getChainId: () => Promise<number>;
    switchNetwork: (chainName: ChainType) => Promise<void>;
    signAndSendTransaction: (txn: Uint8Array) => Promise<Uint8Array>;
    signMessage: (message: Uint8Array) => Promise<Uint8Array>;
    signTypedData: (typedData: ITypedData) => Promise<Uint8Array>;
    signAuthorization: (params: SignAuthorizationParams) => Promise<SignedAuthorization>;
    disconnect: () => Promise<void>;
}
