import type { ProjectDefinitionContainer } from '#src/definition/project-definition-container.js'; import type { DefinitionIssue } from './definition-issue-types.js'; /** * A definition-level issue checker that operates on the full project definition. * Can propose definition-wide auto-fixes. * * Unlike field-level checkers (registered via `withIssueChecker` on schema nodes), * definition-level checkers receive the definition container and can perform * cross-cutting validations like port conflicts, FK type mismatches, or missing * models required by plugins. */ export type DefinitionIssueChecker = (container: ProjectDefinitionContainer) => DefinitionIssue[]; /** * Plugin spec for registering definition-level issue checkers. * * Built-in checkers (relation type mismatch, mutation roles) are registered * by `collectDefinitionIssues` at runtime to avoid circular imports between * schema/creator/ and parser/. Plugins can register additional checkers during * initialization: * ```typescript * createPluginModule({ * dependencies: { issueCheckers: definitionIssueCheckerSpec }, * initialize: ({ issueCheckers }, { pluginKey }) => { * issueCheckers.checkers.set(pluginKey, (container) => { * // validate container.definition and return issues * return []; * }); * }, * }); * ``` */ export declare const definitionIssueCheckerSpec: import("../../index.js").PluginSpec<{ checkers: import("@baseplate-dev/utils").MapContainer; }, { getAllCheckers: () => Map; }>; //# sourceMappingURL=definition-issue-checker-spec.d.ts.map