import multicall from 'state/multicall';
import { SkipFirst } from 'types/tuple';
export type { CallStateResult } from '@uniswap/redux-multicall';
export { NEVER_RELOAD } from '@uniswap/redux-multicall';
declare type MulticallParams<T extends (chainId: number | undefined, latestBlock: number | undefined, ...args: any) => any> = Parameters<T> extends [any, any, ...infer P] ? P : never;
declare type SkipFirstTwoParams<T extends (...args: any) => any> = SkipFirst<Parameters<T>, 2>;
export declare function useMultipleContractSingleData(...args: SkipFirstTwoParams<typeof multicall.hooks.useMultipleContractSingleData>): import("@uniswap/redux-multicall").CallState[];
export declare function useMultipleContractSingleDataWithChainId(_chainId?: number, ...args: SkipFirstTwoParams<typeof multicall.hooks.useMultipleContractSingleData>): import("@uniswap/redux-multicall").CallState[];
export declare function useSingleCallResultWithChainId(_chainId?: number, ...args: SkipFirstTwoParams<typeof multicall.hooks.useSingleCallResult>): import("@uniswap/redux-multicall").CallState;
export declare function useSingleCallResult(...args: MulticallParams<typeof multicall.hooks.useSingleCallResult>): import("@uniswap/redux-multicall").CallState;
export declare function useSingleContractMultipleData(...args: SkipFirstTwoParams<typeof multicall.hooks.useSingleContractMultipleData>): import("@uniswap/redux-multicall").CallState[];
export declare function useSingleContractWithCallData(...args: SkipFirstTwoParams<typeof multicall.hooks.useSingleContractWithCallData>): import("@uniswap/redux-multicall").CallState[];
export declare function useSingleContractWithCallDataWithChainId(chainId: number, ...args: SkipFirstTwoParams<typeof multicall.hooks.useSingleContractWithCallData>): import("@uniswap/redux-multicall").CallState[];
