import { Dispatch } from 'react';
import { AnyAction } from '@reduxjs/toolkit';
import { TokenConfig } from '../config/types';
import { TransferInputState, ValidationErr, TransferValidations } from '../store/transferInput';
import { WalletData, WalletState } from '../store/wallet';
import { RelayState } from '../store/relay';
import { DataWrapper } from '../store/helpers';
import { Chain } from '@wormhole-foundation/sdk';
export declare const validateFromChain: (chain: Chain | undefined) => ValidationErr;
export declare const validateToChain: (chain: Chain | undefined, fromChain: Chain | undefined) => ValidationErr;
export declare const validateToken: (token: string, chain: Chain | undefined) => ValidationErr;
export declare const validateDestToken: (token: string, chain: Chain | undefined, supportedTokens: TokenConfig[]) => ValidationErr;
export declare const validateAmount: (amount: string, balance: string | null, maxAmount: number, isCctp?: boolean) => ValidationErr;
export declare const validateWallet: (wallet: WalletData, chain: Chain | undefined) => Promise<ValidationErr>;
export declare const validateToNativeAmt: (amount: number, max: number | undefined) => ValidationErr;
export declare const validateRelayerFee: (route: string, routeOptions: any) => ValidationErr;
export declare const validateReceiveAmount: (route: string, receiveAmount: DataWrapper<string>, routeOptions: any) => ValidationErr;
export declare const getMaxAmt: (route?: string) => number;
export declare const getIsAutomatic: (route?: string) => boolean;
export declare const isCctp: (token: string, destToken: string, fromChain: Chain | undefined, toChain: Chain | undefined) => boolean;
export declare const validateAll: (transferData: TransferInputState, relayData: RelayState, walletData: WalletState) => Promise<TransferValidations>;
export declare const isTransferValid: (validations: TransferValidations) => boolean;
export declare const validate: ({ transferInput, relay, wallet, }: {
    transferInput: TransferInputState;
    relay: RelayState;
    wallet: WalletState;
}, dispatch: Dispatch<AnyAction>, isCanceled: () => boolean) => Promise<void>;
export declare const useValidate: () => void;
export declare const minutesAndSecondsWithPadding: (minutes: number, seconds: number) => string;
export declare const millisToMinutesAndSeconds: (millis: number) => string;
//# sourceMappingURL=transferValidation.d.ts.map