///
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;
}