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