import { Token } from '../entities';
import { BigNumber, Signer } from 'ethers';
import { KeyStore } from 'near-api-js/lib/key_stores';
import { BaseCurrency } from '../entities/BaseCurrency';
import { Provider } from '@ethersproject/abstract-provider';
import { Eth } from 'web3-eth';
import { NearProviderType } from './paramTypes';
export declare type BridgeRequestParam = {
    fromAddress: string;
    fromToken: BaseCurrency;
    fromChainId: string;
    toChainId: string;
    toAddress: string;
    amount: string;
    options: BridgeOptions;
};
export declare type SwapRequestParam = {
    fromToken: BaseCurrency;
    toToken: BaseCurrency;
    amountIn: string;
    amountOutMin: string;
    tradeType: number;
    options: SwapOptions;
};
export declare type SwapOptions = {
    signerOrProvider?: Signer | Provider | Eth;
    nearConfig?: NearNetworkConfig;
    useAggregator?: boolean;
    gas?: string;
};
export declare type BridgeOptions = {
    signerOrProvider?: Signer | Provider | Eth;
    nearProvider?: NearProviderType;
    gas?: string;
};
export declare type AddTokenPairParam = {
    srcToken: BaseCurrency;
    targetToken: BaseCurrency;
    feeRate: FeeRate;
    mapNetwork: 'map-devnet' | 'map-testnet' | 'map-mainnet';
    mapSigner: Signer;
    nearConfig?: NearNetworkConfig;
    mapToken?: Token;
    srcSigner?: Signer;
};
export declare class NearNetworkConfig {
    fromAccount: string;
    keyStore: KeyStore;
    nodeUrl: string;
    networkId: 'testnet' | 'mainnet';
    constructor(fromAccount: string, keyStore: KeyStore, nodeUrl: string, networkId: 'testnet' | 'mainnet');
}
export declare type TransferOutOptions = {
    gas?: string;
};
export declare type FeeRate = {
    bps: number;
    highest: BigNumber;
    lowest: BigNumber;
};
