import { ChainType, RouteResponse } from "@0xsquid/squid-types";
import { HistoryTransaction } from "../../core/types/history";
import { AppConfig, SlippageOption } from "../types/config";
import { SwapDirection } from "../types/swap";
import { Timeframe, TokenWithBalance } from "../types/tokens";
export declare enum QueryKeys {
    All = "all",
    SquidInfo = "squidInfo",
    Chains = "chains",
    Tokens = "tokens",
    Balances = "balances",
    Balance = "balance",
    AllTokensBalance = "allTokensBalance",
    Transactions = "transactions",
    Transaction = "transaction",
    SwapTransactionStatus = "swapTransactionStatus",
    SendTransactionStatus = "sendTransactionStatus",
    RouteApproved = "routeApproved",
    SendTransactionGas = "sendTransactionGas",
    EnsData = "ensData",
    EnsSearch = "ensSearch",
    CoinGeckoPrices = "coinGeckoPrices",
    CosmosAddress = "cosmosAddress",
    HistoricalData = "historicalData",
    TokensData = "tokensData",
    TokenData = "tokenData",
    FiatToCryptoQuote = "fiatToCryptoQuote",
    FiatToCryptoStatus = "fiatToCryptoStatus",
    FiatToCryptoConfig = "fiatToCryptoConfig",
    Country = "country",
    Xrpl = "xrpl",
    XrplTrustLine = "xrplTrustLine",
    IsXrplTrustLineApproved = "isXrplTrustLineApproved",
    XrplAccountActivatedInfo = "xrplAccountActivatedInfo",
    FiatToCryptoPaymentMethods = "fiatToCryptoPaymentMethods",
    Stellar = "stellar",
    StellarTrustLine = "stellarTrustLine",
    IsStellarTrustLineApproved = "isStellarTrustLineApproved",
    StellarAccountActivatedInfo = "stellarAccountActivatedInfo",
    Hedera = "hedera",
    IsHederaTokenAssociated = "isHederaTokenAssociated"
}
export declare const keys: () => {
    all: QueryKeys;
    squidInfo: () => QueryKeys[];
    chains: () => QueryKeys[];
    tokens: () => QueryKeys[];
    balances: () => QueryKeys[];
    transactions: () => QueryKeys[];
    xrpl: () => QueryKeys[];
    stellar: () => QueryKeys[];
    hedera: () => QueryKeys[];
    coinGeckoPrices: (coingeckoIds?: string[]) => (string | undefined)[];
    historicalData: (coingeckoId?: string, timeFrame?: Timeframe) => (string | undefined)[];
    tokensData: (tokens?: TokenWithBalance[]) => (string | undefined)[];
    tokenData: (token?: TokenWithBalance) => (string | undefined)[];
    balance: (chainId?: number | string, tokenAddress?: string, userAddress?: string) => (string | number | undefined)[];
    allTokensBalance: (address: string | undefined, chainType: ChainType | undefined, direction?: SwapDirection) => (string | undefined)[];
    transaction: (fromChainId: string | undefined, toChainId: string | undefined, toTokenAddress: string | undefined, fromTokenAddress: string | undefined, price: string | undefined, slippage: SlippageOption | undefined, sourceUserAddress: string | undefined, degenMode: boolean | undefined, destinationAddress: string | undefined, fallbackAddress: string | undefined, quoteOnly: boolean | undefined, fromChainType: ChainType | undefined, preHook: AppConfig["preHook"] | undefined, postHook: AppConfig["postHook"] | undefined, overrideGasRefundAddress: AppConfig["overrideGasRefundAddress"] | undefined) => (string | number | boolean | Omit<import("@0xsquid/squid-types").Hook, "fundAmount" | "fundToken"> | undefined)[];
    swapTransactionStatus: (transactionId: string | undefined) => (string | undefined)[];
    fiatToCryptoStatus: (transactionId?: string) => (string | undefined)[];
    sendTransactionStatus: (txHash: string | undefined, chainId: string | undefined) => (string | undefined)[];
    allTransactionsStatus: (transactions: HistoryTransaction[] | undefined) => string[];
    routeApproved: (routeData: RouteResponse["route"] | undefined, allowanceInWei: bigint | undefined, isAllowanceQueryEnabled: boolean | undefined, hasAllowance: boolean | undefined) => (string | boolean | undefined)[];
    sendTransactionGas: (chainId: string | undefined, tokenAddress: string | undefined, from: string | undefined) => (string | undefined)[];
    ensData: (address?: string) => (string | undefined)[];
    ensSearch: (query?: string) => (string | undefined)[];
    cosmosAddress: (chainId: string | undefined) => (string | undefined)[];
    fiatToCryptoQuote: (fiatCurrency: string, cryptoCurrencyID: string, amount: number, region?: string, paymentMethod?: string) => (string | number | undefined)[];
    fiatToCryptoConfig: () => string[];
    country: () => QueryKeys[];
    fiatToCryptoPaymentMethods: (fiatCurrency: string, cryptoCurrencyID: string, region?: string) => (string | undefined)[];
    xrplTrustLine: (tokenAddress: string | undefined, chainId: string | undefined, address: string | undefined) => (string | undefined)[];
    isXrplTrustLineApproved: (address: string | undefined, chainId: string | undefined, chainType: ChainType | undefined, tokenAddress: string | undefined, trustLineLimit: string | undefined, amountToApprove: bigint | undefined) => (string | undefined)[];
    xrplAccountActivatedInfo: (destinationAddress: string | undefined, toChainId: string | undefined, toChainType: ChainType | undefined) => (string | undefined)[];
    stellarTrustLine: (tokenAddress: string | undefined, chainId: string | undefined, address: string | undefined) => (string | undefined)[];
    isStellarTrustLineApproved: (address: string | undefined, chainId: string | undefined, chainType: ChainType | undefined, tokenAddress: string | undefined, trustLineLimit: string | undefined, amountToApprove: bigint | undefined) => (string | undefined)[];
    stellarAccountActivatedInfo: (address: string | undefined, chainId: string | undefined, chainType: ChainType | undefined) => (string | undefined)[];
    isHederaTokenAssociated: (address: string | undefined, chainId: string | undefined, chainType: ChainType | undefined, tokenAddress: string | undefined) => (string | undefined)[];
};
export declare const getPrefixKey: (key: QueryKeys) => QueryKeys[];
