import { Awaitable, DebugEvent, DeleterFinished, DeleterProgress, DeleterStart, ExitEvent, QueueItem, WaitEvent, WriterFinished, WriterProgress, WriterStart } from "../types/events"; import { AsyncOptions, DeleterRange, ElementOrSelector } from "../types/options"; export default class AsyncTypingWriter { queue: QueueItem[]; private onEvents; private onceEvents; private TypingWriter; private queueIndex; private queueRunning; private queueLooping; private ranEvents; constructor(selectors: ElementOrSelector, options?: AsyncOptions); write(text?: string): this; pause(cancel?: boolean, setFinalText?: boolean): this; continue(): this; wait(ms: number): this; delete(range?: DeleterRange, offset?: number): this; exit(setFinalText?: boolean): this; private loop; private emit; on(event: "tw.DEBUG", callback: (event: DebugEvent) => Awaitable): this; on(event: "tw.PAUSE", callback: (event: ExitEvent) => Awaitable): this; on(event: "tw.CONTINUE", callback: (event: ExitEvent) => Awaitable): this; on(event: "tw.EXIT", callback: (event: ExitEvent) => Awaitable): this; on(event: "tw.WAIT_START", callback: (event: WaitEvent) => Awaitable): this; on(event: "tw.WAIT_END", callback: (event: WaitEvent) => Awaitable): this; on(event: "tw.WRITE_START", callback: (event: WriterStart) => Awaitable): this; on(event: "tw.WRITE_PROGRESS", callback: (event: WriterProgress) => Awaitable): this; on(event: "tw.WRITE_END", callback: (event: WriterFinished) => Awaitable): this; on(event: "tw.DELETE_START", callback: (event: DeleterStart) => Awaitable): this; on(event: "tw.DELETE_PROGRESS", callback: (event: DeleterProgress) => Awaitable): this; on(event: "tw.DELETE_END", callback: (event: DeleterFinished) => Awaitable): this; once(event: "tw.DEBUG", callback: (event: DebugEvent) => Awaitable): this; once(event: "tw.PAUSE", callback: (event: ExitEvent) => Awaitable): this; once(event: "tw.CONTINUE", callback: (event: ExitEvent) => Awaitable): this; once(event: "tw.EXIT", callback: (event: ExitEvent) => Awaitable): this; once(event: "tw.WAIT_START", callback: (event: WaitEvent) => Awaitable): this; once(event: "tw.WAIT_END", callback: (event: WaitEvent) => Awaitable): this; once(event: "tw.WRITE_START", callback: (event: WriterStart) => Awaitable): this; once(event: "tw.WRITE_PROGRESS", callback: (event: WriterProgress) => Awaitable): this; once(event: "tw.WRITE_END", callback: (event: WriterFinished) => Awaitable): this; once(event: "tw.DELETE_START", callback: (event: DeleterStart) => Awaitable): this; once(event: "tw.DELETE_PROGRESS", callback: (event: DeleterProgress) => Awaitable): this; once(event: "tw.DELETE_END", callback: (event: DeleterFinished) => Awaitable): this; }