import { NetworkId } from "@kanalabs/aggregator";
import { RefObject } from "react";
import { ModalType } from "types";
interface SourceInfo {
    chainId: NetworkId;
    chainName: string;
    chainImg: string;
    tokenSymbol: string;
    tokenImg: string;
    tokenAmount: string;
    tokenAddress: string;
    tokenBalance: number;
    tokenDollarPrice: number;
}
interface TargetInfo {
    chainId: NetworkId;
    chainName: string;
    chainImg: string;
    tokenSymbol: string;
    tokenDecimal: number;
    tokenImg: string;
    tokenAmount: string;
    tokenAddress: string;
    tokenBalance: number;
    tokenDollarPrice: number;
}
interface chainAndTokenListVisibility {
    visibility: boolean;
    clickedFrom: string;
}
interface WalletConnectVisibility {
    visibility: boolean;
    clickedFrom: string;
}
interface ChainAddressState {
    targetChainAddress: string;
    sourceChainAddress: string;
}
interface Token {
    name: string;
    symbol: string;
    logoURL?: string;
    address?: string;
    fa_address?: string;
}
interface RouteHop {
    dexName: string;
    marketName: string;
    fromToken: Token;
    toToken: Token;
    parentType?: string;
}
interface RouteSplit {
    percentage: number;
    inputAmount: string;
    outputAmount: string;
    type: string;
    routeTaken: RouteHop[];
}
interface RouteInfo {
    amountIn: number;
    amountOut: string;
    protocols: string[];
    routeSplits: RouteSplit[];
}
interface SwapView {
    availableRoutes: RouteInfo[];
    crossChainRoutes: RouteInfo[];
    sourceInfo: SourceInfo;
    targetInfo: TargetInfo;
    selectedRoute: any;
    slippage: number;
    model: ModalType;
    chainAndTokenListVisibility: chainAndTokenListVisibility;
    handleSameChain: () => void;
    handleCrossChain: () => void;
    isTour: boolean;
    isTablet: boolean;
    handleTourOpen: () => void;
    chainType: string;
    isRedeem: boolean;
    setRedeemVisible: () => void;
    getRoutes: () => Promise<void>;
    setSettingsViewVisibility: (visible: boolean) => void;
    setAggregatorSettingsVisibility: (visible: boolean) => void;
    setCrossChainSettingVisibility: (visible: boolean) => void;
    isDexSettingsVisible?: boolean;
    isDexSettingsVisibleForCrossChain?: boolean;
    isDexModified?: boolean;
    props: any;
    selectSameChain: (chainId: number) => void;
    sourcePair: NetworkId[];
    targetPair: NetworkId[];
    ref1: RefObject<HTMLDivElement>;
    ref2: RefObject<HTMLDivElement>;
    ref4: RefObject<HTMLDivElement>;
    ref5: RefObject<HTMLDivElement>;
    ref6: RefObject<HTMLDivElement>;
    ref8: RefObject<HTMLDivElement>;
    ref10: RefObject<HTMLInputElement>;
    ref11: RefObject<HTMLButtonElement>;
    displayTokenList: (value: string) => void;
    setWalletConnectVisibility: React.Dispatch<React.SetStateAction<WalletConnectVisibility>>;
    copyHash: (hash: any) => Promise<void>;
    chainAddress: ChainAddressState;
    onTokenAmountChange: (e: any) => void;
    getPercentageAmount: (percentage: any) => void;
    allowInterChange: boolean;
    isRouteLoading: boolean;
    interchangeSwap: () => void;
    startSwap: () => Promise<void>;
    isRoutesVisible: boolean;
    setConnectWallets: () => void;
}
declare const SwapView: React.FC<SwapView>;
export default SwapView;
