import React from "react";
import WalletSDK from "../index";
import { TokenInfo, OutputDetails } from "../services/services";
import { swapToken } from "../types/swap";
import { ProtocolProvider } from "./utils";
interface SwapParams {
    fromToken: swapToken;
    toToken: Omit<swapToken, "amount">;
    showMessagePopup?: boolean;
    messageType?: "success" | "error";
    transactionId?: string;
}
interface QuoteParams {
    fromToken: {
        amount: string;
        chainId: number;
        tokenAddress: string;
        metadata?: {
            tokenName: string;
            tokenSymbol: string;
            decimals: number;
            logoURI: string;
            chainIds: {
                chainId: number;
                address: string;
            }[];
        };
    };
    toToken: {
        chainId: number;
        tokenAddress: string;
        metadata?: {
            tokenName: string;
            tokenSymbol: string;
            decimals: number;
            logoURI: string;
            chainIds: {
                chainId: number;
                address: string;
            }[];
        };
    };
    provider?: ProtocolProvider;
}
interface WalletContextType {
    walletSDK: WalletSDK | null;
    isLoggedIn: boolean;
    username: string | null;
    walletAddress: string | null;
    solanaAddress: string | null;
    bitcoinWalletAddress: string | null;
    balance: any | null;
    connect: () => void;
    disconnect: () => void;
    swap: (params: SwapParams) => void;
    tokenOptions: TokenInfo[];
    tokensLoading: boolean;
    refreshTokenOptions: () => Promise<void>;
    cryptoBalance: any;
    loading: boolean;
    setLoading: (loading: boolean) => void;
    refreshBalance: (showLoading?: boolean) => Promise<void>;
    showActivity: boolean;
    setShowActivity: (showActivity: boolean) => void;
    activity: any;
    setActivity: (activity: any) => void;
    calculateQuote: (params: QuoteParams) => Promise<OutputDetails | string>;
    executeSwap: (params: QuoteParams) => Promise<any>;
}
export declare const useWallet: () => WalletContextType;
interface WalletProviderProps {
    children: React.ReactNode;
    sdkKey: string;
}
export declare const WalletProvider: React.FC<WalletProviderProps>;
export {};
