export type QueueOptions = { pipe?: (item: T) => T; chain?: () => Queue; }; export type QueueItem = { next?: QueueItem; prev?: QueueItem; data?: T; }; export type QueueEventHandler = ((data: any, state: Queue) => void); export type QueueListeners = { [key: string | number]: { ids: number; handlers: { [key: string | number]: QueueEventHandler; }; }; }; export declare class Queue { size: number; maxSize: number; first: QueueItem | undefined; last: QueueItem | undefined; private pipe; private chain; private listeners; private ids; constructor(maxSize?: number, options?: QueueOptions); isEmpty(): boolean; prepend(data: T): this; concat(other: Queue): this; peak(): T; remove(): T; pull(): T; nodes(): Generator, void, unknown>; on(method: any, create: (unsub: () => any) => QueueEventHandler): void; push(...datum: T[]): Queue; readHead(n?: number): Generator; readTail(n?: number): Generator; atIndex(n?: number): any; read(cb: (item: T) => void): void; get length(): number; shift(): T; toArray(): T[]; clear(): Queue; flush(n?: number): Generator; headIs(pred: (head: T) => boolean): boolean; toString(): string; insert(data: any): { before: (next: QueueItem) => any; after: (prev: QueueItem) => any; }; [Symbol.iterator](): Generator; static describes(item: any): item is Queue; static fromArray(arr: T[]): Queue; static of(...args: T[]): Queue; } //# sourceMappingURL=queue.d.ts.map