/**
 * 서비스별 stdout 출력 포맷을 ju-hong-e 공통 실행기 형식으로 정규화하는 파일이다.
 * 최종 stdout 복원과 사람이 읽는 실시간 스트림 렌더링을 분리하기 위한 후처리기 팩토리만 담당한다.
 */
import type { ServiceCommandOutputProtocol } from '../../types/index';
/**
 * stdout chunk 처리 결과 구조다.
 * 누적 stdout 과 즉시 스트리밍할 텍스트를 분리해 상위 실행기가 각각 다른 용도로 사용할 수 있게 한다.
 */
export type ProcessStdoutChunkResult = {
    /**
     * 최종 stdout 으로 누적할 문자열 조각이다.
     */
    stdoutFragment?: string;
    /**
     * stream-output 모드일 때 즉시 터미널에 보여줄 문자열 조각이다.
     */
    streamFragment?: string;
};
/**
 * 서비스별 stdout 후처리기가 지켜야 하는 최소 인터페이스다.
 * 각 구현체는 chunk 단위 입력과 종료 시점 flush 만 담당하고, 실제 출력 여부는 상위 실행기가 결정한다.
 */
export type ServiceOutputProcessor = {
    /**
     * 새 stdout chunk 를 받아 서비스 포맷에 맞게 가공한다.
     * @param chunk child stdout 에서 읽은 원본 chunk
     * @returns 누적 stdout 조각과 즉시 출력할 조각
     */
    processStdoutChunk(chunk: string): ProcessStdoutChunkResult;
    /**
     * 프로세스 종료 직전에 남은 버퍼를 flush 한다.
     * @returns 종료 시점에 추가 반영할 stdout / stream 조각
     */
    finalize(): ProcessStdoutChunkResult;
};
/**
 * @description 서비스 시도 스펙에 맞는 stdout 후처리기를 생성한다.
 * @param protocol 시도별 stdout 출력 프로토콜
 * @returns 서비스 전용 stdout 처리기
 */
export declare function createServiceOutputProcessor(protocol?: ServiceCommandOutputProtocol): ServiceOutputProcessor;
//# sourceMappingURL=output-processors.d.ts.map