import type { OrchestratorLifecycle } from "./types";
/**
 * TypeScript 타입체크 옵션
 */
export interface TypecheckOptions {
    /** 타입체크 대상 경로 필터 (예: `packages/core-common`, `tests/orm`). 빈 배열이면 전체 대상. */
    targets: string[];
    /** sd.config.ts에 전달할 추가 옵션 */
    options: string[];
    /** true이면 엔진에 lint: true를 전달하고 lint 결과를 수집한다 */
    lint?: boolean;
}
/**
 * TypeScript 타입체크 실행 결과
 */
export interface TypecheckResult {
    success: boolean;
    errorCount: number;
    warningCount: number;
    formattedOutput: string;
    /** lint 결과 (TypecheckOptions.lint가 true일 때 존재) */
    lint?: {
        success: boolean;
        errorCount: number;
        warningCount: number;
        formattedOutput: string;
    };
    /** 건너뛴 scripts 패키지 경로 (별도 lint용) */
    scriptsPackagePaths?: string[];
}
/**
 * 타입체크를 조율하는 Orchestrator
 *
 * BuildOrchestrator/WatchOrchestrator/DevOrchestrator와 동일한 initialize() → start() → shutdown() 생명주기를 따른다.
 * sd.config.ts 기반으로 패키지를 분류하고, BuildEngine을 사용하여 타입체크를 실행한다.
 */
export declare class TypecheckOrchestrator implements OrchestratorLifecycle<TypecheckResult> {
    private readonly _cwd;
    private readonly _options;
    private readonly _logger;
    private readonly _typecheckTasks;
    private readonly _scriptsPackagePaths;
    private _includeNonPackage;
    constructor(options: TypecheckOptions);
    /**
     * Initialize Orchestrator
     * - Load sd.config.ts
     * - Discover workspace packages and merge tests
     * - Classify packages into typecheck tasks
     * - Collect scripts package paths
     */
    initialize(): Promise<void>;
    /**
     * 타입체크 실행
     * - 엔진 생성 및 동시성 제어된 실행
     * - 비패키지 타입체크
     * - 결과 집계 및 포맷 출력 생성
     *
     * @returns 타입체크 결과
     */
    start(): Promise<TypecheckResult>;
    /**
     * 패키지 타입체크 실행
     * - 엔진 생성 및 동시성 제어된 실행
     * - 결과 역직렬화 및 집계
     */
    private _executePackageTypechecks;
    /**
     * 비패키지 타입체크 실행 (sd.config.ts에 없는 루트 파일들)
     */
    private _executeNonPackageTypecheck;
    /**
     * 타입체크 결과 집계 및 포맷 출력 생성
     */
    private _aggregateTypecheckResults;
    /**
     * Orchestrator 종료 (현재 정리할 리소스 없음)
     */
    shutdown(): Promise<void>;
}
/**
 * TypecheckOrchestrator의 전체 생명주기를 래핑한 편의 함수.
 * initialize() → start() → shutdown() 순서로 호출한다.
 *
 * @param options - 타입체크 실행 옵션
 * @returns 타입체크 결과
 */
export declare function executeTypecheck(options: TypecheckOptions): Promise<TypecheckResult>;
//# sourceMappingURL=TypecheckOrchestrator.d.ts.map