///
import { Connection, TransactionSignature } from '@solana/web3.js';
import { Program } from '@coral-xyz/anchor';
import { EventSubscriptionOptions, EventType, WrappedEvents, EventMap, EventSubscriberEvents } from './types';
import { EventList } from './eventList';
import { EventEmitter } from 'events';
import StrictEventEmitter from 'strict-event-emitter-types';
export declare class EventSubscriber {
private connection;
private program;
private options;
private address;
private eventListMap;
private txEventCache;
private awaitTxPromises;
private awaitTxResolver;
private logProvider;
eventEmitter: StrictEventEmitter;
private lastSeenSlot;
private lastSeenBlockTime;
lastSeenTxSig: string;
constructor(connection: Connection, program: Program, options?: EventSubscriptionOptions);
subscribe(): Promise;
private handleTxLogs;
fetchPreviousTx(fetchMax?: boolean): Promise;
unsubscribe(): Promise;
private parseEventsFromLogs;
awaitTx(txSig: TransactionSignature): Promise;
getEventList(eventType: Type): EventList;
/**
* This requires the EventList be cast to an array, which requires reallocation of memory.
* Would bias to using getEventList over getEvents
*
* @param eventType
*/
getEventsArray(eventType: Type): EventMap[Type][];
getEventsByTx(txSig: TransactionSignature): WrappedEvents | undefined;
}