import { BrowserNode } from '@connext/vector-browser-node';
import { ConditionalTransferCreatedPayload, ConditionalTransferResolvedPayload, DepositReconciledPayload, EngineEvents, FullChannelState, NodeResponses, WithdrawalReconciledPayload } from '@connext/vector-types';
import { providers, BigNumber } from 'ethers';
import { Evt } from 'evt';
export declare const connectNode: (routerPublicIdentifier: string, depositChainId: number, withdrawChainId: number, depositChainProvider: string, withdrawChainProvider: string, loginProvider?: providers.Web3Provider | undefined) => Promise<BrowserNode>;
export declare const getTotalDepositsBob: (channelAddress: string, assetId: string, provider: providers.BaseProvider) => Promise<BigNumber>;
export declare const reconcileDeposit: (node: BrowserNode, channelAddress: string, _assetId: string) => Promise<import("@sinclair/typebox").StaticProperties<{
    channelAddress: import("@sinclair/typebox").TString;
}>>;
export declare const createFromAssetTransfer: (node: BrowserNode, fromChainId: number, _fromAssetId: string, toChainId: number, _toAssetId: string, routerPublicIdentifier: string, crossChainTransferId: string, preImage: string) => Promise<{
    transferId: string;
    preImage: string;
}>;
export declare const resolveToAssetTransfer: (node: BrowserNode, toChainId: number, preImage: string, crossChainTransferId: string, routerPublicIdentifier: string) => Promise<{
    transferId: string;
}>;
export declare const waitForSenderCancels: (node: BrowserNode, evt: Evt<ConditionalTransferResolvedPayload>, depositChannelAddress: string) => Promise<void>;
export declare const cancelToAssetTransfer: (node: BrowserNode, withdrawChannelAddess: string, transferId: string) => Promise<NodeResponses.ResolveTransfer>;
export declare const cancelHangingToTransfers: (node: BrowserNode, evt: Evt<ConditionalTransferResolvedPayload>, fromChainId: number, toChainId: number, _toAssetId: string, routerPublicIdentifier: string) => Promise<(NodeResponses.ResolveTransfer | undefined)[]>;
export declare const withdrawToAsset: (node: BrowserNode, toChainId: number, _toAssetId: string, recipientAddr: string, routerPublicIdentifier: string) => Promise<{
    withdrawalTx: string;
    withdrawalAmount: string;
}>;
export declare const verifyRouterSupports: (node: BrowserNode, fromChainId: number, _fromAssetId: string, toChainId: number, _toAssetId: string, ethProvider: providers.BaseProvider, routerPublicIdentifier: string) => Promise<any>;
export declare const verifyRouterCapacityForTransfer: (ethProvider: providers.BaseProvider, toAssetId: string, withdrawChannel: FullChannelState, transferAmount: BigNumber, swap: any) => Promise<void>;
export declare type EvtContainer = {
    [EngineEvents.CONDITIONAL_TRANSFER_CREATED]: Evt<ConditionalTransferCreatedPayload>;
    [EngineEvents.CONDITIONAL_TRANSFER_RESOLVED]: Evt<ConditionalTransferResolvedPayload>;
    [EngineEvents.DEPOSIT_RECONCILED]: Evt<DepositReconciledPayload>;
    [EngineEvents.WITHDRAWAL_RECONCILED]: Evt<WithdrawalReconciledPayload>;
};
export declare const createEvtContainer: (node: BrowserNode) => EvtContainer;
export declare const getChannelForChain: (node: BrowserNode, routerIdentifier: string, chainId: number) => Promise<FullChannelState>;
export declare const getFeeQuote: (routerIdentifier: string, amount: string, assetId: string, chainId: number, recipient: string, recipientChainId: number, recipientAssetId: string) => Promise<{
    fee: string;
}>;
