import { TokenInfo } from '../Token';
import BigNumber from 'bignumber.js';
export interface BridgeRouteI {
    /** update */
    key: string;
    /** only one */
    id: string;
    fromToken: TokenInfo;
    toToken: TokenInfo;
    fromChainId: number;
    toChainId: number;
    /** from parameter  */
    fromAmount: string;
    toTokenAmount: BigNumber;
    /** from parameter  */
    fromAddress: string;
    toAddress: string;
    /** from parameter  */
    product: string | null;
    slippage: number;
    /** in seconds */
    roundedRouteCostTime: number;
    /** approve contract address */
    spenderContractAddress: string;
    /** USD */
    feeUSD: string | null;
    /** in seconds */
    executionDuration: number | null;
    /** one-click */
    step: BridgeStep;
    encodeParams: any;
    productParams: any;
    sourceRoute: {
        toAmount: string;
        feeUSD: string | null;
        executionDuration: number | null;
        step: {
            tool: string;
            toolDetails: {
                logoURI: string | null;
                name: string | null;
                key: string | null;
            };
            type: string | null;
            approvalAddress: string;
            includedSteps: any;
        };
        fee: any;
    };
}
export interface BridgeTokenI {
    id: number;
    symbol: string;
    name: string;
    address: string;
    decimals: number;
    logoUrl: string;
    chainId: number;
    stableCurrencyToken: boolean;
    mainCurrencyToken: boolean;
}
export interface BridgeStepTool {
    name: string;
    logoURI: string;
}
export interface BridgeStepEstimate {
    fromToken: Pick<BridgeTokenI, 'address' | 'symbol' | 'chainId' | 'decimals'>;
    toToken: Pick<BridgeTokenI, 'address' | 'symbol' | 'chainId' | 'decimals'>;
    fromTokenAmount: BigNumber;
    toTokenAmount: BigNumber;
}
export interface BridgeStep {
    tool: string;
    toolDetails: BridgeStepTool;
    type: string | null;
    includedSteps: Array<{
        id: string;
        /**
         *  bridge or swap
         */
        tool: string;
        toolDetails: BridgeStepTool;
        type: string;
        estimate: BridgeStepEstimate;
    }>;
}
export declare enum RoutePriceStatus {
    Initial = "Initial",
    Loading = "Loading",
    Failed = "Failed",
    Success = "Success"
}
export interface FetchRoutePrice {
    fromToken: TokenInfo | null;
    toToken: TokenInfo | null;
    fromAmount: string;
}
export declare function useFetchRoutePriceBridge({ toToken, fromToken, fromAmount, }: FetchRoutePrice): {
    status: RoutePriceStatus;
    refetch: () => Promise<void>;
    bridgeRouteList: BridgeRouteI[];
};
