import { Log } from '@ethersproject/abstract-provider'; import { ErrorCode } from '@ethersproject/logger'; import { ContractReceipt, ContractTransaction, utils } from 'ethers'; import * as t from 'io-ts'; import { OnEvent, TypedEvent, TypedEventFilter } from './generated/common'; export type Eventable = { once: OnEvent; }; export type Contract> = { interface: TInterface; filters: Record TypedEventFilter>; }; export declare function extractEvents, TContract extends Contract>(contract: TContract, filterChooser: (filter: TContract['filters']) => TypedEventFilter, logsLike: LogsLike): Promise; export declare function waitForEvent>(filter: TypedEventFilter, contract: Eventable): Promise; type MaybePromise = Promise | T; type LogsLike = Log[] | MaybePromise | MaybePromise | undefined; export declare function extractEventsFromLogs>(filter: TypedEventFilter, iface: TInterface, logs: Log[]): TEvent['args'][]; export declare const EventParseError: t.UnionC<[t.TypeC<{ code: t.LiteralC; reason: t.StringC; }>, t.TypeC<{ code: t.LiteralC; argument: t.StringC; }>]>; export {};