import { BaseWalletProvider } from '../BaseWalletProvider';
import { ChainType, ITypedData } from '../../../types/wallet.types';
import { Transaction } from '@solana/web3.js';
declare global {
    interface Window {
        phantom?: {
            ethereum?: {
                isConnected?: boolean;
                request: (args: {
                    method: string;
                    params?: any[];
                }) => Promise<any>;
            };
            solana?: {
                isConnected?: boolean;
                chainId?: number;
                connect: () => Promise<{
                    publicKey: {
                        toString: () => string;
                    };
                }>;
                disconnect: () => Promise<void>;
                signMessage: (message: Uint8Array, encoding: string) => Promise<{
                    signature: Uint8Array;
                }>;
                signAndSendTransaction: (txn: Transaction) => Promise<string>;
            };
        };
        ethereum?: any;
    }
}
export declare class PhantomProvider extends BaseWalletProvider {
    constructor();
    private connectedChainType;
    isInstalled: () => Promise<boolean>;
    private connectEthereum;
    private connectSolana;
    connect: (chainType?: ChainType) => Promise<{
        caipAddress: string;
    }>;
    getChainId: (chainType?: ChainType) => Promise<number>;
    signMessage: (message: Uint8Array) => Promise<Uint8Array>;
    signAndSendTransaction: (txn: Uint8Array) => Promise<Uint8Array>;
    signTypedData: (typedData: ITypedData) => Promise<Uint8Array>;
    disconnect: () => Promise<void>;
}
