import { EventType, Filter, Listener } from '@ethersproject/abstract-provider'; import { AlchemyEventFilter, AlchemyEventType, AlchemyMinedTransactionsAddress, AlchemyMinedTransactionsEventFilter, AlchemyPendingTransactionsEventFilter, NonEmptyArray } from '../types/types'; /** * DO NOT MODIFY. * * Event class copied directly over from ethers.js's `BaseProvider` class. * * This class is used to represent events and their corresponding listeners. The * SDK needs to extend this class in order to support Alchemy's custom * Subscription API types. The original class is not exported by ethers. Minimal * changes have been made in order to get TS to compile. */ declare class Event { readonly listener: Listener; readonly once: boolean; readonly tag: string; _lastBlockNumber: number; _inflight: boolean; constructor(tag: string, listener: Listener, once: boolean); get event(): EventType; get type(): string; get hash(): string; get filter(): Filter; pollable(): boolean; } /** * Wrapper class around the ethers `Event` class in order to add support for * Alchemy's custom subscriptions types. * * The serialization and deserialization mechanism requires the order of the * fields to be the same across different {@link ALCHEMY_EVENT_TYPES}. Before * using a getter on a new event filter, make sure that the position of the * field in serialization is correct. * * The getters on this class deserialize the event tag generated by * {@link getAlchemyEventTag} into the original fields passed into the event. */ export declare class EthersEvent extends Event { /** * Converts the event tag into the original `fromAddress` field in * {@link AlchemyPendingTransactionsEventFilter}. */ get fromAddress(): string | string[] | undefined; /** * Converts the event tag into the original `toAddress` field in * {@link AlchemyPendingTransactionsEventFilter}. */ get toAddress(): string | string[] | undefined; /** * Converts the event tag into the original `hashesOnly` field in * {@link AlchemyPendingTransactionsEventFilter} and {@link AlchemyMinedTransactionsEventFilter}. */ get hashesOnly(): boolean | undefined; get includeRemoved(): boolean | undefined; get addresses(): NonEmptyArray | undefined; } export declare function isAlchemyEvent(event: AlchemyEventType): event is AlchemyMinedTransactionsEventFilter | AlchemyPendingTransactionsEventFilter; export declare function verifyAlchemyEventName(eventName: AlchemyEventFilter): void; export declare function deserializeTopics(data: string): any; export {};