import type { SchemaManifest } from "../model/ManifestGrammar.js"; import { type ManifestFilePaths } from "./ManifestPathDiagnoser.js"; import { type Diagnostic, type Phase } from "../../kernel/diagnostic.js"; /** * Cross-Schema checks for the locale + translates grammar additions * introduced in ADR-0010. Runs in both the validate phase (CLI, * pre-deploy) and the boot phase (Worker init, post-deploy). The * static parts (parent existence, join-field membership in both * Schemas, translates-implies-localized) don't need any environment. * The site-locales check needs the runtime config, so it runs only * when `siteLocales` is provided. * * Caller passes the phase tag so diagnostics surface as * `validate/` or `boot/` per ADR-0008. */ export interface CrossSchemaCheckInput { readonly schemas: ReadonlyArray; readonly phase: Extract; /** Site config locales (ordered, first is canonical). When absent, * the SCHEMA_LOCALIZED_REQUIRES_SITE_LOCALES check is skipped — * validate-from-CLI flows can't reach the runtime DB to read this. * Boot always has access and should pass it. */ readonly siteLocales?: ReadonlyArray; /** Optional file-path index for nicer diagnostic paths in the * validate phase. See {@link ManifestFilePaths}. */ readonly filePaths?: ManifestFilePaths; } /** Compatibility composition; production stages call their single owned check. */ export declare function checkLocaleAndTranslates(input: CrossSchemaCheckInput): Diagnostic[]; /** Deployment-dependent locale availability; parse/link never call this. */ export declare function checkSiteLocales(input: CrossSchemaCheckInput): Diagnostic[]; /** Cross-Schema translation references. Atom-local translation shape lives in the parser. */ export declare function checkTranslatesReferences(schemas: readonly SchemaManifest[], phase: Extract, filePaths?: ManifestFilePaths): Diagnostic[]; //# sourceMappingURL=CrossSchemaChecker.d.ts.map