export interface TestFile {
    filepath: string;
    status: 'passed' | 'failed' | 'pending' | 'skipped';
    duration?: number;
    tests: Test[];
    suites?: TestSuiteNode[];
}
export interface Test {
    name: string;
    status: 'passed' | 'failed' | 'pending' | 'skipped';
    duration?: number;
    error?: string;
    filepath: string;
}
export interface TestSuiteNode {
    name: string;
    type: 'suite' | 'test';
    status: 'passed' | 'failed' | 'pending' | 'skipped';
    duration?: number;
    error?: string;
    children?: TestSuiteNode[];
}
export interface TestSuite {
    files: Map<string, TestFile>;
    totalTests: number;
    passedTests: number;
    failedTests: number;
    pendingTests: number;
    startTime?: Date;
    lastUpdate?: Date;
}
export interface SerializableTestSuite {
    files: Record<string, TestFile>;
    totalTests: number;
    passedTests: number;
    failedTests: number;
    pendingTests: number;
    startTime?: string;
    lastUpdate?: string;
}
export interface VitestWatchState {
    isRunning: boolean;
    isReady: boolean;
    suite: TestSuite;
    process?: NodeJS.Process;
    config: VitestConfig;
}
export interface VitestConfig {
    workingDirectory: string;
    configFile?: string;
    reporter?: string;
    coverage?: boolean;
    environment?: string;
    watch?: boolean;
    pattern?: string;
}
export interface VitestOutput {
    type: 'test-start' | 'test-end' | 'suite-start' | 'suite-end' | 'ready' | 'error';
    data: Record<string, unknown>;
}
export interface VitestTask {
    type: 'test' | 'suite';
    name: string;
    mode?: string;
    result?: {
        state: 'pass' | 'fail' | 'pending';
        duration?: number;
        errors?: Array<{
            message?: string;
            toString(): string;
        }>;
    };
    tasks?: VitestTask[];
}
export interface VitestFile {
    name?: string;
    filepath?: string;
    id?: string;
    result?: {
        state: 'pass' | 'fail' | 'pending';
        duration?: number;
        errors?: Array<{
            message?: string;
            toString(): string;
        }>;
    };
    tasks?: VitestTask[];
}
//# sourceMappingURL=types.d.ts.map