import { Awaitable, DebugEvent, DeleterFinished, DeleterProgress, DeleterStart, ExitEvent, WaitEvent, WriterFinished, WriterProgress, WriterStart } from "../types/events"; import { DeleterRange, ElementOrSelector, ExpectedTypingWriterOptions, Options } from "../types/options"; import Deleter from "./Deleter"; import Writer from "./Writer"; export default class TypingWriter { options: ExpectedTypingWriterOptions; selectors: Element[]; writers: Writer[]; deleters: Deleter[]; isRunning: boolean; exited: boolean; private paused; private onEvents; private onceEvents; constructor(selectors: ElementOrSelector, options?: Options); write(text?: string): Promise; delete(range?: DeleterRange, offset?: number): Promise; pause(cancel?: boolean, setFinalText?: boolean): this; continue(): this; wait(ms: number): Promise; exit(setFinalText?: boolean): this; 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; }