import type { Action } from '../useReducer'; import { ChainLegacy, RootState, GatewayToken } from '../types'; import { NetworkConfig } from '../networkConfig'; export type UseChainAction = { type: 'tokenOnChainNotFound'; } | { type: 'tokenOnChainError'; } | { type: 'tokenListenerAdded'; listenerId: number; } | { type: 'tokenExpectedTimerAdded'; listenerId: number; } | { type: 'tokenExpectedTimerCleared'; listenerId: number; } | { type: 'tokenOnChainFetch'; } | { type: 'tokenOnChainFound'; } | { type: 'tokenOnChainUnknown'; }; export declare const reducer: (state: RootState, action: Action) => RootState; declare const useChain: ({ chainImplementation, onGatewayTokenCreatedOrChanged, }: { chainImplementation: ChainLegacy | undefined; networkConfig: NetworkConfig; onGatewayTokenCreatedOrChanged: (token: GatewayToken) => void; }, state: Partial, dispatch: React.Dispatch) => { addChainCreatedOrChangedListeners: (tokenChange: (GatewayToken: GatewayToken) => void) => number | undefined; checkForOnChainToken: (tokenChange: (GatewayToken: GatewayToken) => void) => Promise; removeOnChainListener: (arg: number) => void; dispatchListenerAdded: (listenerId: number) => void; dispatchTokenExpectedTimerAdded: (listenerId: number) => void; dispatchTokenExpectedTimerCleared: (listenerId: number) => void; addTokenChangeListener: (gatewayToken: GatewayToken, tokenChange: (GatewayToken: GatewayToken) => void) => Promise; }; export default useChain;