import type { DoctorCheck } from './cli-doctor.js'; import type { WorkspacePackageJson, WorkspaceProject } from '../workspace/workspace-project.js'; /** * Snapshot of package-level filesystem doctor inputs prepared asynchronously. */ export interface WorkspacePackageDoctorSnapshot { /** Whether the expected workspace bootstrap PHP file exists. */ bootstrapExists: boolean; /** Relative path to the expected workspace bootstrap PHP file. */ bootstrapRelativePath: string; /** Whether the migration config file exists. */ migrationConfigExists: boolean; /** Relative path to the migration config file. */ migrationConfigRelativePath: string; /** First discovered ttsc lint config path, when present. */ ttscLintConfigRelativePath: string | null; /** Read failure for the discovered ttsc lint config, when present. */ ttscLintConfigReadError: string | null; /** Source of the discovered ttsc lint config, when readable. */ ttscLintConfigSource: string | null; /** Actual block source paths used to validate lint exclusions. */ ttscLintManagedSourcePaths: string[]; /** Effective tsconfig coverage problem for JavaScript, when present. */ ttscJavaScriptCoverageIssue: string | null; /** Whether the managed ttsc lint compatibility helper is current. */ ttscLintCompatCurrent: boolean; /** Project-local lint packages that cannot be resolved. */ ttscLintMissingInstalledPackages: readonly string[]; } /** * Prepare package-level workspace doctor inputs without blocking the event loop. * * @param workspace Resolved workspace metadata and filesystem paths. * @param packageJson Parsed workspace package manifest. * @returns Snapshot values consumed by synchronous doctor row mappers. */ export declare function prepareWorkspacePackageDoctorSnapshot(workspace: WorkspaceProject, packageJson: WorkspacePackageJson): Promise; /** Report whether an official workspace has adopted the managed lint lane. */ export declare function getWorkspaceTtscLintCheck(packageJson: WorkspacePackageJson, snapshot: WorkspacePackageDoctorSnapshot): DoctorCheck; /** * Validate the package metadata that makes a project an official workspace. * * @param workspace Resolved workspace metadata and filesystem paths. * @param packageJson Parsed workspace package manifest. * @param snapshot Async filesystem snapshot for package-level doctor inputs. * @returns A `DoctorCheck` describing whether package metadata matches the workspace contract. */ export declare function getWorkspacePackageMetadataCheck(workspace: WorkspaceProject, packageJson: WorkspacePackageJson, snapshot: WorkspacePackageDoctorSnapshot): DoctorCheck; /** * Report whether a workspace configured for migrations exposes the expected doctor inputs. * * @param packageJson Parsed workspace package manifest. * @param snapshot Async filesystem snapshot for package-level doctor inputs. * @returns A migration hint row when the workspace uses migrations, otherwise `null`. */ export declare function getMigrationWorkspaceHintCheck(packageJson: WorkspacePackageJson, snapshot: WorkspacePackageDoctorSnapshot): DoctorCheck | null;