import { type SerializedTrace } from "../naite/naite"; export type TestNodeKind = "file" | "suite" | "test"; export type TestState = "passed" | "failed" | "skipped" | "todo" | "running" | "unknown"; export type TestCaseResult = { id: string; kind: TestNodeKind; name: string; fullName: string; file: string; state: TestState; durationMs: number | null; counts: { total: number; passed: number; failed: number; skipped: number; }; error: { message: string; stack?: string; } | null; traces: SerializedTrace[]; children: TestCaseResult[]; }; export type RunResult = { ok: boolean; summary: { total: number; passed: number; failed: number; skipped: number; durationMs: number; }; results: TestCaseResult[]; }; export type ManagerStatus = { ready: boolean; running: boolean; lastRunAt: string | null; }; export type TestEventListener = (event: string, data: unknown) => void; export declare class DevVitestManager { private vitest; private running; private lastRunAt; private queue; private processing; private closed; private eventListeners; private currentRunContext; addEventListener(listener: TestEventListener): void; removeEventListener(listener: TestEventListener): void; emitEvent(event: string, data: unknown): void; start(vitestConfigPath?: string): Promise; run(opts: { files?: string[]; pattern?: string; }, runId: string): Promise; getStatus(): ManagerStatus; /** * 변경된 파일을 Vitest 모듈 그래프에서 무효화합니다. * syncFromWatcher에서 호출되어 다음 테스트 실행 시 최신 코드를 사용하도록 합니다. */ invalidateFiles(filePaths: string[]): void; shutdown(): Promise; private processQueue; private executeRun; private createRealtimeProgressReporter; private buildFileProgressNode; private buildSuiteProgressNode; private buildTestProgressNode; private resolveSuiteParentId; private resolveTestParentId; private collectResults; private buildFileNode; private buildChildNodes; private buildSuiteNode; private buildTestNode; } //# sourceMappingURL=dev-vitest-manager.d.ts.map