/** * `LintConfig` — workspace-settings-level lint configuration. * * Workspace settings carry a `lint` section whose `rules` map binds rule ids * to `"off" | "info" | "warn" | "error"`. The registry publish * gate ignores workspace overrides; this config affects `axm lint` only. * * Keys are **exact** rule ids (`/`). No glob, wildcard, or * regex syntax is accepted in v1. The accepted-key set is built at schema * construction time from rule ids registered via `registerLintRuleIds` — the * three v1 catalogs (`skill/*`, `pack/*`, `workspace/*`) each register their * ids so adding a catalog in a later phase extends the set by construction. * * @experimental This API is unstable and may change without notice. * @packageDocumentation */ import * as Schema from "effect/Schema"; /** * Accepted values for a `lint.rules` entry. * * Note: `"warn"` is the config surface for `Severity` `"warning"`; mirror's * ESLint convention. The evaluator treats `"warn"` as equivalent to `warning` * severity; `"off"` suppresses emission. * * @experimental This API is unstable and may change without notice. */ export declare const LintRuleSeveritySchema: Schema.Literals; /** * Effective severity of a `lint.rules` entry. * * @experimental This API is unstable and may change without notice. */ export type LintRuleSeverity = Schema.Schema.Type; /** * Register one or more rule ids into the config allowlist. * * Each v1 rule catalog calls this once at module-load to extend the set of * accepted `lint.rules` keys. Calls are additive and idempotent — registering * an id twice is a no-op. A rule id that isn't registered will cause * `SettingsSchema` decode to fail at the `lint.rules` key, surfacing the * unknown id in the error path. * * Consumers (Phases 3a/3b/3c) should register from the catalog module by * iterating the catalog's own rule array: no copy-paste of rule ids into this * file. * * @experimental This API is unstable and may change without notice. */ export declare const registerLintRuleIds: (ids: Iterable) => void; /** * Read-only view of the currently-registered rule ids. * * Mainly useful for tests and snapshots; production callers should not depend * on ordering. * * @experimental This API is unstable and may change without notice. */ export declare const registeredLintRuleIds: () => ReadonlySet; /** * Record of `/` ids to severity overrides. * * Unknown / wildcard / regex keys are rejected at decode by the filter — the * filter walks the decoded record's keys and checks every key against the * registered rule-id set. Wildcard patterns like `"skill/*"` fail the filter * because they are not registered ids. * * @experimental This API is unstable and may change without notice. */ export declare const LintRulesMapSchema: Schema.$Record>; /** * Inferred type for `LintRulesMap`. * * @experimental This API is unstable and may change without notice. */ export type LintRulesMap = Schema.Schema.Type; /** * `lint` section of `axm.json`. * * Today only `rules` is defined; future fields (per-rule options, reporter * selection) extend this struct. The schema rejects excess top-level keys so * typos surface at decode. * * @experimental This API is unstable and may change without notice. */ export declare const LintConfigSchema: Schema.Struct<{ readonly rules: Schema.optionalKey>>; }>; /** * Inferred type for `LintConfig`. * * @experimental This API is unstable and may change without notice. */ export type LintConfig = Schema.Schema.Type; /** * The platform-canonical `LintConfig` — empty rules, no overrides. * * Registry publish uses this config; it carries no overrides so every rule * fires at its catalog severity. * * @experimental This API is unstable and may change without notice. */ export declare const platformCanonicalLintConfig: LintConfig; //# sourceMappingURL=config.d.ts.map