/// import EventEmitter from "events"; import { Awaitable, DeleterFinished, DeleterProgress, DeleterStart, WriterEvent } from "../types/events"; import { DeleterOptions } from "../types/options"; export default interface Deleter { on(event: "START", callback: (event: DeleterStart) => Awaitable): this; on(event: "PROGRESS", callback: (event: DeleterProgress) => Awaitable): this; on(event: "FINISHED", callback: (event: DeleterFinished) => Awaitable): this; on(event: WriterEvent, callback: (event: DeleterStart | DeleterProgress | DeleterFinished) => Awaitable): this; once(event: "START", callback: (event: DeleterStart) => Awaitable): this; once(event: "PROGRESS", callback: (event: DeleterProgress) => Awaitable): this; once(event: "FINISHED", callback: (event: DeleterFinished) => Awaitable): this; once(event: WriterEvent, callback: (event: DeleterStart | DeleterProgress | DeleterFinished) => Awaitable): this; emit(event: "START", ...args: DeleterStart[]): boolean; emit(event: "PROGRESS", ...args: DeleterProgress[]): boolean; emit(event: "FINISHED", ...args: DeleterFinished[]): boolean; emit(event: WriterEvent, ...args: (DeleterStart | DeleterProgress | DeleterFinished)[]): boolean; } export default class Deleter extends EventEmitter { target: Element; options: DeleterOptions; finalText: string; currentIndex: number; finalIndex: number; enabled: boolean; setFinalText: boolean; deleteResolver: (() => void) | null; paused: boolean; private deleterWrapper; private moveCursor; constructor(target: Element, options: DeleterOptions); delete(): Promise; pause(): void; continue(): void; cancel(setFinalText: boolean): void; private deleteCharacter; private getInterval; private getRandomInteger; private addDeleterWrapper; private deleteDeleterWrapper; }