import { EventType, EventMap, EventSubscriptionOrderDirection, SortFn } from './types';
declare class Node<Type extends EventType, Event extends EventMap[Type]> {
    event: Event;
    next?: Node<Type, Event>;
    prev?: Node<Type, Event>;
    constructor(event: Event, next?: Node<Type, Event>, prev?: Node<Type, Event>);
}
export declare class EventList<Type extends EventType> {
    eventType: Type;
    maxSize: number;
    private sortFn;
    private orderDirection;
    size: number;
    head?: Node<Type, EventMap[Type]>;
    tail?: Node<Type, EventMap[Type]>;
    constructor(eventType: Type, maxSize: number, sortFn: SortFn, orderDirection: EventSubscriptionOrderDirection);
    insert(event: EventMap[Type]): void;
    detach(): void;
    toArray(): EventMap[Type][];
    [Symbol.iterator](): Generator<EventMap[Type], void, unknown>;
}
export {};
//# sourceMappingURL=eventList.d.ts.map