/// import { EventEmitter } from "events"; declare type Awaitable = Promise | T; interface PollEvents { item: (item: T) => void; listing: (items: T[]) => void; end: () => void; } export default interface Poll { on>(event: U, listener: PollEvents[U]): this; once>(event: U, listener: PollEvents[U]): this; off>(event: U, listener: PollEvents[U]): this; } export interface PollConfiguration { frequency: number; get: () => Awaitable; identifier: keyof T; } export default class Poll extends EventEmitter { frequency: number; interval: NodeJS.Timeout; processed: Set; constructor({ frequency, get, identifier }: PollConfiguration); end(): void; } export {};