import { default as React } from 'react';
import { AdapterType, IBridgeChain, ITransferConfig, IBridgeToken, IChainConfig, INativeCurrency } from '../types';
import { IGetFromChainsParams, IGetToChainsParams } from '../shared/aggregateChains';
import { IGetTokensParams } from '../shared/aggregateTokens';
import { IGetToTokenParams } from '../shared/aggregateToToken';

export interface AggregatorContextProps {
    isReady: boolean;
    transferConfig: ITransferConfig;
    defaultSelectedInfo: ITransferConfig['defaultSelectedInfo'];
    chainConfigs: IChainConfig[];
    nativeCurrencies: Record<number, INativeCurrency>;
    adapters: AdapterType[];
    getFromChains: (params: IGetFromChainsParams) => IBridgeChain[];
    getToChains: (params: IGetToChainsParams) => IBridgeChain[];
    getTokens: (params: IGetTokensParams) => IBridgeToken[];
    getToToken: (params: IGetToTokenParams) => IBridgeToken | undefined;
}
export declare const AggregatorContext: React.Context<AggregatorContextProps>;
export interface AggregatorProviderProps {
    transferConfig?: ITransferConfig;
    chains: IChainConfig[];
    children: React.ReactNode;
}
export declare function AggregatorProvider(props: AggregatorProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useAggregator(): AggregatorContextProps;
