/**
 * 선택된 AI CLI를 실행하고 재시도 정책을 적용하는 상위 서비스 러너다.
 * 서비스별 빌더와 공통 실행 인프라를 묶어 chat과 builtin command 요청을 처리한다.
 */
import type { AIServiceType, ParsedCliArgs, ServicePromptInput, ServiceRunResult, SessionActionStatus, StoragePaths, TraceLogger } from '../types/index';
import type { ServiceMode } from './internal/types';
export { ensureServiceCli } from './internal/cli-management';
/**
 * @description 서비스 실행 직전 prompt 전체와 참조 리소스를 보안 검사한 뒤 AI CLI를 호출합니다.
 * @param options 서비스 실행 옵션
 * @returns 실행 결과 또는 보안 차단 결과
 */
export declare function runAIService(options: {
    /**
     * 외부에서 현재 AI 작업을 ESC와 동일하게 취소하기 위한 AbortSignal
     */
    abortSignal?: AbortSignal;
    /**
     * 비대화형 권한 요청을 자동으로 yes 처리할지 여부
     */
    autoYes?: boolean;
    /**
     * show-stream 설정과 무관하게 강제로 구조화 스트림 모드로 실행할지 여부
     */
    forceStreamOutput?: boolean;
    /**
     * loading Message 값
     */
    loadingMessage?: string;
    /**
     * process.stdin raw-mode/keypress 제어 여부. 백그라운드 호출은 false. (기본 true)
     */
    manageStdin?: boolean;
    /**
     * 실시간 출력 조각을 외부 소비자에게 전달할 때 사용하는 콜백
     */
    onStreamChunk?: (chunk: string, stream: 'stdout' | 'stderr') => void;
    /**
     * mode 값
     */
    mode: ServiceMode;
    /**
     * parsed Args 값
     */
    parsedArgs: ParsedCliArgs;
    /**
     * 작업 디렉터리 기준 저장 경로 집합
     */
    paths: StoragePaths;
    /**
     * prompt 값
     */
    prompt: ServicePromptInput;
    /**
     * 대상 AI 서비스 식별자
     */
    service: AIServiceType;
    /**
     * status 값
     */
    status?: SessionActionStatus;
    /**
     * streaming Message 값
     */
    streamingMessage?: string;
    /**
     * 실시간 출력 조각을 현재 터미널에도 그대로 쓸지 여부
     */
    writeStreamOutputToTerminal?: boolean;
    /**
     * 실행 흐름 추적 로거
     */
    trace: TraceLogger;
}): Promise<ServiceRunResult>;
//# sourceMappingURL=index.d.ts.map