import { EngineEvent, EngineEventMap } from "./engine"; import { NodeError, Result } from "./error"; import { GetTransfersFilterOpts, NodeParams, NodeResponses } from "./schemas"; // NOTE: This interface will also wrap server nodes that support a default // publicIdentifier (i.e. use a default index). This means that the interface // function parameters do NOT match the REST API schemas, specifically // due to the optional nature of the public identifier (MUST be supplied // when using a multinode server-node, and does NOT need to be supplied // when using a single-node server-node) export type OptionalPublicIdentifier = Omit & { publicIdentifier?: string }; export interface INodeService { publicIdentifier: string; signerAddress: string; getStatus(): Promise>; getRouterConfig( params: OptionalPublicIdentifier, ): Promise>; getStateChannelByParticipants( params: OptionalPublicIdentifier, ): Promise>; getStateChannels( params: OptionalPublicIdentifier, ): Promise>; getStateChannel( params: OptionalPublicIdentifier, ): Promise>; getTransferQuote( params: OptionalPublicIdentifier, ): Promise>; getTransferByRoutingId( params: OptionalPublicIdentifier, ): Promise>; getTransfersByRoutingId( params: OptionalPublicIdentifier, ): Promise>; getTransfer( params: OptionalPublicIdentifier, ): Promise>; getActiveTransfers( params: OptionalPublicIdentifier, ): Promise>; getTransfers( params: OptionalPublicIdentifier< NodeParams.GetTransfers & Omit & { startDate: Date; endDate: Date } // in the client, use Date type >, ): Promise>; getRegisteredTransfers( params: OptionalPublicIdentifier, ): Promise>; getWithdrawalCommitment( params: OptionalPublicIdentifier, ): Promise>; getWithdrawalCommitmentByTransactionHash( params: OptionalPublicIdentifier, ): Promise>; createNode(params: NodeParams.CreateNode): Promise>; setup( params: OptionalPublicIdentifier, ): Promise>; internalSetup(params: OptionalPublicIdentifier): Promise>; sendDepositTx( params: OptionalPublicIdentifier, ): Promise>; reconcileDeposit( params: OptionalPublicIdentifier, ): Promise>; requestCollateral( params: OptionalPublicIdentifier, ): Promise>; conditionalTransfer( params: OptionalPublicIdentifier, ): Promise>; resolveTransfer( params: OptionalPublicIdentifier, ): Promise>; signUtilityMessage( params: OptionalPublicIdentifier, ): Promise>; sendIsAliveMessage( params: OptionalPublicIdentifier, ): Promise>; withdraw(params: OptionalPublicIdentifier): Promise>; getWithdrawalQuote( params: OptionalPublicIdentifier, ): Promise>; restoreState( params: OptionalPublicIdentifier, ): Promise>; // Dispute methods getChannelDispute( params: OptionalPublicIdentifier, ): Promise>; sendDisputeChannelTx( params: OptionalPublicIdentifier, ): Promise>; sendDefundChannelTx( params: OptionalPublicIdentifier, ): Promise>; getTransferDispute( params: OptionalPublicIdentifier, ): Promise>; sendDisputeTransferTx( params: OptionalPublicIdentifier, ): Promise>; sendDefundTransferTx( params: OptionalPublicIdentifier, ): Promise>; sendExitChannelTx( params: OptionalPublicIdentifier, ): Promise>; syncDisputes(params: {}): Promise>; once( event: T, callback: (payload: EngineEventMap[T]) => void | Promise, filter?: (payload: EngineEventMap[T]) => boolean, publicIdentifier?: string, ): void; on( event: T, callback: (payload: EngineEventMap[T]) => void | Promise, filter?: (payload: EngineEventMap[T]) => boolean, publicIdentifier?: string, ): void; off(event: T, publicIdentifier?: string): void; waitFor( event: T, timeout: number, filter?: (payload: EngineEventMap[T]) => boolean, publicIdentifier?: string, ): Promise; }