import type { AllMessages, PluginOptions } from '../installLogsPrinter.types';
export interface IOutputProcecessor {
    initialize(): void;
    getTarget(): string;
    getSpentTime(): number;
    write(allMessages: AllMessages): void;
}
export default abstract class BaseOutputProcessor implements IOutputProcecessor {
    protected file: string;
    protected options: PluginOptions;
    protected atChunk: number;
    protected chunkSeparator: string;
    protected initialContent: string;
    protected size: number;
    protected specChunksWritten: Record<string, [number, number]>;
    protected writeSpendTime: number;
    constructor(file: string, options: PluginOptions);
    getTarget(): string;
    getSpentTime(): number;
    initialize(): void;
    prepareForWrite(): void;
    /** @type { import('./BaseOutputProcessor')['writeSpecChunk']} */
    writeSpecChunk(spec: string, chunk: any, pos?: number | null): void;
    replaceSpecChunk(spec: string, chunk: string): void;
    appendSeparator(pos: number | null): void;
    writeAtPosition(data: string, pos: number | null): number;
    getAbsolutePositionFromRelative(pos: number | null): number;
    hasSpecChunkWritten(spec: string): boolean;
    abstract write(allMessages: AllMessages): void;
}
