import type { SyncTypesOptions } from "../pipeline/syncTypes/syncTypes.mjs";
interface IndexTask {
  type: 'index';
  taskId: number;
  filePath: string;
  perf?: boolean;
  processorOptions: {
    include: string[];
    exclude: string[];
    baseDir: string;
    onlyUpdateIndexes: boolean;
    markerDir: string;
    useVisibleDescription: boolean;
  };
}
interface TypesTask {
  type: 'types';
  taskId: number;
  filePath: string;
  perf?: boolean;
  syncTypesOptions: Omit<SyncTypesOptions, 'typesMarkdownPath' | 'rootContext' | 'variants'>;
  rootContext: string;
}
interface SerializedPerfEntry {
  name: string;
  duration: number;
}
interface IndexResult {
  type: 'index';
  taskId: number;
  success: boolean;
  perfEntries?: SerializedPerfEntry[];
  error?: string;
}
interface TypesResult {
  type: 'types';
  taskId: number;
  success: boolean;
  updated?: boolean;
  updatedPath?: string;
  perfEntries?: SerializedPerfEntry[];
  error?: string;
}
export type ValidateTask = IndexTask | TypesTask;
export type ValidateResult = IndexResult | TypesResult;
export {};