import type { EnvelopeReturn } from '../../lib/index.ts';
import type { Workspace } from '../../pm/index.ts';
export interface TscValidateOptions {
    pkg?: string;
    verbose?: boolean;
    workspaces?: Workspace[];
}
export interface TscValidateWorkspaceResult {
    durationMs: number;
    errorCount: number;
    fileCount: number;
    skipped?: 'no-tsconfig' | 'validate-disabled';
    workspace: string;
}
export interface SharedValidateRunSummary {
    failedPackageCount: number;
    results: TscValidateWorkspaceResult[];
    totalErrorCount: number;
}
/**
 * Validates a set of workspaces in one process with a shared source-file
 * cache, printing per-package lines and a summary. Used by the standalone
 * `xy tsc-validate` command and by `xy compile` when `compile.validator`
 * is `shared`.
 */
export declare function runSharedValidate(targetWorkspaces: Pick<Workspace, 'location' | 'name'>[], verbose?: boolean): Promise<SharedValidateRunSummary>;
/**
 * Root-level shared-host validate: runs every package's `tsc` validation
 * program in one process with a shared SourceFile cache, instead of
 * spawning `tsc -p` per package. Each package is checked under its own
 * tsconfig options — see sharedValidate.ts for the sharing rules.
 * Experimental standalone command; does not affect `xy compile`.
 */
export declare const tscValidate: ({ pkg, verbose, workspaces: inputWorkspaces, }: TscValidateOptions) => Promise<EnvelopeReturn<TscValidateWorkspaceResult[]>>;
//# sourceMappingURL=tscValidate.d.ts.map