/** @purpose Single lint error in ESLint-compatible format. */ export type LintError = { /** @purpose Path to the file containing the error */ file: string; /** @purpose 1-based line number */ line: number; /** @purpose 1-based column number */ col: number; /** @purpose Always 'error' for lint violations */ severity: 'error'; /** @purpose Error code from ERR_CLI_LINT_* or ERR_DBC_LINT_* set */ code: string; /** @purpose Human-readable description with corrective action */ message: string; }; /** @purpose Configuration for a single lint run. */ export type LintOptions = { /** @purpose List of .ts file paths to lint */ files: string[]; /** @purpose Enable autofix for dbc contract checks */ autofix: boolean; /** @purpose Git scan mode — collect files from git index */ gitMode?: 'staged'; }; /** @purpose Aggregated lint result with ESLint-compatible formatting. | @invariant exitCode is 0 when errors is empty, 1 otherwise. */ export declare class LintReport { /** @purpose Collected lint errors — empty array when clean. */ readonly errors: LintError[]; /** @purpose Count of errors auto-fixed by DbcContractCheck. */ readonly autoFixed: number; /** @purpose Deduplicated task file paths resolved from @tasks annotations in linted files. */ readonly taskPaths: string[]; /** @purpose Deduplicated spec file paths resolved from task files. */ readonly specPaths: string[]; /** * @purpose Creates a LintReport with collected errors, autoFixed count, and resolved references. * @param errors Collected lint errors. * @param [autoFixed] Count of auto-fixed errors, defaults to 0. * @param [taskPaths] Resolved task file paths (deduplicated). * @param [specPaths] Resolved spec file paths (deduplicated). */ constructor(errors: LintError[], autoFixed?: number, taskPaths?: string[], specPaths?: string[]); /** @purpose Returns 0 when no errors, 1 otherwise — ESLint convention. | @returns 0 for clean, 1 for errors. */ get exitCode(): 0 | 1; /** * @purpose Formats errors in ESLint-compatible output with resolved task/spec references. * @returns ESLint-compatible formatted string with References block. */ format(): string; } /** @purpose File is missing the mandatory // @file: directive before the first import. */ export declare const ERR_CLI_LINT_MISSING_FILE: "ERR_CLI_LINT_MISSING_FILE"; /** @purpose File is missing the mandatory // @consumers: directive before the first import. */ export declare const ERR_CLI_LINT_MISSING_CONSUMERS: "ERR_CLI_LINT_MISSING_CONSUMERS"; /** @purpose A START anchor has no matching END anchor — opening block never closed. */ export declare const ERR_CLI_LINT_ANCHOR_UNPAIRED_START: "ERR_CLI_LINT_ANCHOR_UNPAIRED_START"; /** @purpose An END anchor has no matching START anchor — closing block never opened. */ export declare const ERR_CLI_LINT_ANCHOR_UNPAIRED_END: "ERR_CLI_LINT_ANCHOR_UNPAIRED_END"; /** @purpose Anchors violate nesting — parent closed before child. */ export declare const ERR_CLI_LINT_ANCHOR_NESTING: "ERR_CLI_LINT_ANCHOR_NESTING"; /** @purpose Bare #region/#endregion without START_/END_ prefix — malformed anchor. */ export declare const ERR_CLI_LINT_ANCHOR_MALFORMED: "ERR_CLI_LINT_ANCHOR_MALFORMED"; /** @purpose Cyrillic characters found in JSDoc contracts or file headers — English required. */ export declare const ERR_CLI_LINT_NON_ENGLISH: "ERR_CLI_LINT_NON_ENGLISH"; /** @purpose Target resolution failed — path does not exist (ENOENT) or permission denied (EACCES). | @invariant Used by resolveTargets for graceful degradation. */ export declare const ERR_CLI_LINT_RESOLVE_FAILED: "ERR_CLI_LINT_RESOLVE_FAILED"; /** @purpose Mutually exclusive flags: --staged and positional targets cannot be used together. */ export declare const ERR_CLI_LINT_STAGED_CONFLICT: "ERR_CLI_LINT_STAGED_CONFLICT"; /** @purpose TypeScript / linter disable comment without a Decision Log reference (D-NNN) in the same line. | @invariant Implements policy D-007 (cli.spec.md): every @ts-ignore / @ts-nocheck / @ts-expect-error / eslint-disable* must cite D-NNN in the same comment. */ export declare const ERR_CLI_LINT_UNAUTHORIZED_DISABLE: "ERR_CLI_LINT_UNAUTHORIZED_DISABLE"; /** @purpose TypeScript / linter disable comment has a D-NNN reference but lacks a purpose explanation. | @invariant Implements D-007 contract tightening (TSK-52): >= 8 non-whitespace characters of purpose must remain after stripping the comment opener, the marker, and the D-NNN token. */ export declare const ERR_CLI_LINT_DISABLE_MISSING_PURPOSE: "ERR_CLI_LINT_DISABLE_MISSING_PURPOSE"; /** @purpose Entity has more invariants than the configured threshold — contract may be overloaded. | @invariant Counts both @invariant JSDoc tags and invariant: in region comments. */ export declare const ERR_CLI_LINT_TOO_MANY_INVARIANTS: "ERR_CLI_LINT_TOO_MANY_INVARIANTS"; /** @purpose #region START / #endregion END found at class body level — regions must not separate class members. */ export declare const ERR_CLI_LINT_ANCHOR_AT_CLASS_BODY: "ERR_CLI_LINT_ANCHOR_AT_CLASS_BODY"; /** @purpose Two #region START at the same brace depth without an intervening #endregion END — merge or close the first region. */ export declare const ERR_CLI_LINT_ANCHOR_CONSECUTIVE_START: "ERR_CLI_LINT_ANCHOR_CONSECUTIVE_START"; /** @purpose Region contains fewer than 2 meaningful lines — region is too thin. Keep any comment and remove the region wrapper. */ export declare const ERR_CLI_LINT_ANCHOR_TOO_THIN: "ERR_CLI_LINT_ANCHOR_TOO_THIN";