///
import EventEmitter from "events";
import { Awaitable, WriterEvent, WriterFinished, WriterProgress, WriterStart } from "../types/events";
import { ExpectedWriterOptions, WriterOptions } from "../types/options";
export default interface Writer {
on(event: "START", callback: (event: WriterStart) => Awaitable): this;
on(event: "PROGRESS", callback: (event: WriterProgress) => Awaitable): this;
on(event: "FINISHED", callback: (event: WriterFinished) => Awaitable): this;
on(event: WriterEvent, callback: (event: WriterStart | WriterProgress | WriterFinished) => Awaitable): this;
once(event: "START", callback: (event: WriterStart) => Awaitable): this;
once(event: "PROGRESS", callback: (event: WriterProgress) => Awaitable): this;
once(event: "FINISHED", callback: (event: WriterFinished) => Awaitable): this;
once(event: WriterEvent, callback: (event: WriterStart | WriterProgress | WriterFinished) => Awaitable): this;
emit(event: "START", ...args: WriterStart[]): boolean;
emit(event: "PROGRESS", ...args: WriterProgress[]): boolean;
emit(event: "FINISHED", ...args: WriterFinished[]): boolean;
emit(event: WriterEvent, ...args: (WriterStart | WriterProgress | WriterFinished)[]): boolean;
}
export default class Writer extends EventEmitter {
target: Element;
options: ExpectedWriterOptions;
textProcess: string[][];
lastText: string;
progress: string;
finalText: string;
indexRun: number;
indexType: number;
enabled: boolean;
setFinalText: boolean;
writeResolver: (() => void) | null;
paused: boolean;
constructor(target: Element, options: WriterOptions);
write(): Promise;
pause(): void;
continue(): void;
cancel(setFinalText: boolean): void;
private typeCharacter;
private processText;
private getInterval;
private getRandomInteger;
}