import { Route } from './types';
export declare enum ChainField {
    FROM = "FROM",
    TO = "TO"
}
export declare enum CurrencyField {
    INPUT = "INPUT",
    OUTPUT = "OUTPUT"
}
export declare enum TransactionStatus {
    SUCCESS = "SUCCESS",
    FAILED = "FAILED"
}
export interface BridgeState {
    readonly typedValue: string;
    readonly [CurrencyField.INPUT]: {
        readonly currencyId: string | undefined;
    };
    readonly [CurrencyField.OUTPUT]: {
        readonly currencyId: string | undefined;
    };
    readonly [ChainField.FROM]: {
        readonly chainId: string | undefined;
    };
    readonly [ChainField.TO]: {
        readonly chainId: string | undefined;
    };
    readonly recipient: string | null;
    readonly routes: Route[];
    readonly selectedRoute: number | undefined;
    readonly routesLoaderStatus: boolean;
    readonly transactionLoaderStatus: boolean;
    readonly transactionError: Error | undefined;
    readonly transactionStatus: TransactionStatus | undefined;
}
export declare const useBridgeStateAtom: () => {
    bridgeState: BridgeState;
    replaceBridgeState: ({ inputCurrencyId, outputCurrencyId, fromChainId, toChainId }: any) => void;
    selectCurrency: ({ currencyId, field }: any) => void;
    selectRoute: ({ selectedRoute }: any) => void;
    changeRouteLoaderStatus: ({ routesLoaderStatus }: any) => void;
    selectChain: ({ chainId, field }: any) => void;
    typeAmount: ({ field, typedValue }: any) => void;
    switchCurrencies: () => void;
    switchChains: () => void;
    clearTransactionData: () => void;
    setRecipient: ({ recipient }: any) => void;
    setRoutes: ({ routes, routesLoaderStatus }: any) => void;
    changeTransactionLoaderStatus: ({ transactionLoaderStatus, transactionStatus }: any) => void;
    setTransactionError: ({ transactionError }: any) => void;
};
