///
import { ISwapWrapper, ISwapWrapperOptions, WrapperCtorTokens } from "../ISwapWrapper";
import { ChainType, ClaimEvent, InitializeEvent, RefundEvent, SignatureData, SwapEvent } from "@atomiqlabs/base";
import { ISwap } from "../ISwap";
import { UnifiedSwapStorage } from "../../storage/UnifiedSwapStorage";
import { UnifiedSwapEventListener } from "../../events/UnifiedSwapEventListener";
import { ISwapPrice } from "../../prices/abstract/ISwapPrice";
import { EventEmitter } from "events";
import { SwapType } from "../enums/SwapType";
import { IEscrowSwap } from "./IEscrowSwap";
export declare abstract class IEscrowSwapWrapper, O extends ISwapWrapperOptions = ISwapWrapperOptions> extends ISwapWrapper {
readonly abstract TYPE: SwapType;
readonly abstract pendingSwapStates: Array;
readonly abstract swapDeserializer: {
new (wrapper: ISwapWrapper, data: any): S;
};
readonly abstract tickSwapState: Array;
readonly contract: T["Contract"];
readonly swapDataDeserializer: new (data: any) => T["Data"];
constructor(chainIdentifier: string, unifiedStorage: UnifiedSwapStorage, unifiedChainEvents: UnifiedSwapEventListener, chain: T["ChainInterface"], contract: T["Contract"], prices: ISwapPrice, tokens: WrapperCtorTokens, swapDataDeserializer: new (data: any) => T["Data"], options: O, events?: EventEmitter<{
swapState: [ISwap];
}>);
/**
* Pre-fetches signature verification data from the server's pre-sent promise, doesn't throw, instead returns null
*
* @param signDataPrefetch Promise that resolves when we receive "signDataPrefetch" from the LP in streaming mode
* @protected
* @returns Pre-fetched signature verification data or null if failed
*/
protected preFetchSignData(signDataPrefetch: Promise): Promise;
/**
* Verifies swap initialization signature returned by the intermediary
*
* @param initiator A smart chain account initiating the swap
* @param data Parsed swap data from the intermediary
* @param signature Response of the intermediary
* @param feeRatePromise Pre-fetched fee rate promise
* @param preFetchSignatureVerificationData Pre-fetched signature verification data
* @param abortSignal
* @protected
* @returns Swap initialization signature expiry
* @throws {SignatureVerificationError} when swap init signature is invalid
*/
protected verifyReturnedSignature(initiator: string, data: T["Data"], signature: SignatureData, feeRatePromise: Promise, preFetchSignatureVerificationData: Promise, abortSignal?: AbortSignal): Promise;
/**
* Processes InitializeEvent for a given swap
* @param swap
* @param event
* @protected
* @returns Whether the swap was updated/changed
*/
protected processEventInitialize?(swap: S, event: InitializeEvent): Promise;
/**
* Processes ClaimEvent for a given swap
* @param swap
* @param event
* @protected
* @returns Whether the swap was updated/changed
*/
protected processEventClaim?(swap: S, event: ClaimEvent): Promise;
/**
* Processes RefundEvent for a given swap
* @param swap
* @param event
* @protected
* @returns Whether the swap was updated/changed
*/
protected processEventRefund?(swap: S, event: RefundEvent): Promise;
/**
* Processes a single SC on-chain event
* @private
* @param event
* @param swap
*/
protected processEvent(event: SwapEvent, swap: S): Promise;
protected _checkPastSwaps(pastSwaps: S[]): Promise<{
changedSwaps: S[];
removeSwaps: S[];
}>;
}