/**
 * Output renderers for `vyuh-dxkit guardrail check`.
 *
 * Three target surfaces, one shared `GuardrailCheckResult`:
 *
 *   - **Console** (`renderConsole`) — human-readable text for
 *     terminal output. Grouped by verdict (blocking / warning /
 *     informational), each pair showing status + kind + locator +
 *     severity + reason chain. Color codes via the shared logger
 *     palette so output blends with the rest of dxkit's CLI.
 *
 *   - **JSON** (`renderJson`) — schema-stable machine-readable
 *     payload (top-level `schema: 'dxkit.guardrail-check.v1'`).
 *     Designed for AI agents and CI runners that need to programmatically
 *     decide what to do. Includes the matcher's per-pair detail,
 *     classifier verdicts, envelope drift, and the resolved policy.
 *
 *   - **Markdown** (`renderMarkdown`) — Phase 4 PR-comment template.
 *     Compact, table-heavy, status-banner-first. Renders into the
 *     `dxkit-guardrails.yml` workflow's PR comment unchanged. No
 *     emojis (bot-friendly; Phase 4 templates can layer presentation
 *     on top).
 *
 * Pure modules. No I/O — callers handle stdout writing, file
 * writing, or PR-comment posting.
 */
import type { EnvelopeDrift, GuardrailCheckResult } from './check';
import type { BrownfieldPolicy } from './policy';
import type { FindingStatus, MatchReason } from './types';
/**
 * Render the check result as a human-readable text block. Returns a
 * single multi-line string; callers route it to stdout.
 */
export declare function renderConsole(result: GuardrailCheckResult): string;
export declare const GUARDRAIL_JSON_SCHEMA: "dxkit.guardrail-check.v1";
/**
 * Schema-stable machine-readable payload. `schema` at the top level
 * lets downstream tooling version-gate before reading further fields;
 * bump it when the shape changes incompatibly.
 */
export interface GuardrailJsonPayload {
    readonly schema: typeof GUARDRAIL_JSON_SCHEMA;
    readonly verdict: {
        readonly blocks: boolean;
        readonly warns: boolean;
        readonly exitCode: 0 | 1;
    };
    readonly baseline: {
        /** Absent when the run used `ref-based` mode (no on-disk
         *  baseline file). */
        readonly path?: string;
        readonly name: string;
        readonly createdAt: string;
        readonly commitSha: string;
        readonly branch: string;
        readonly findingsCount: number;
        /** Resolved baseline mode (`committed-full` / `committed-
         *  sanitized` / `ref-based`) + its audit trail. Surfaced so
         *  agents + dashboards can see WHY the run picked a given
         *  posture without re-deriving from policy + visibility. */
        readonly mode: {
            readonly value: 'committed-full' | 'committed-sanitized' | 'ref-based';
            readonly source: string;
            readonly explanation: string;
            readonly ref?: string;
        };
    };
    readonly current: {
        readonly commitSha: string;
        readonly branch: string;
        readonly findingsCount: number;
    };
    readonly matcher: {
        readonly gitAware: boolean;
        readonly degradedReason?: string;
    };
    readonly envelopeDrift: EnvelopeDrift;
    readonly policy: {
        readonly mode: BrownfieldPolicy['mode'];
        readonly block: ReadonlyArray<FindingStatus>;
        readonly warn: ReadonlyArray<FindingStatus>;
        readonly confidence: BrownfieldPolicy['confidence'];
        readonly blockRules: BrownfieldPolicy['blockRules'];
    };
    readonly summary: {
        readonly pairs: number;
        readonly blocking: number;
        readonly warning: number;
        readonly persisted: number;
        readonly resolved: number;
    };
    readonly pairs: ReadonlyArray<{
        readonly status: FindingStatus;
        readonly blocks: boolean;
        readonly warns: boolean;
        readonly priorId?: string;
        readonly currentId?: string;
        readonly confidence: number;
        readonly kind: string;
        readonly severity?: string;
        readonly file?: string;
        readonly line?: number;
        readonly overlapsChangedLines?: boolean;
        readonly reasons: ReadonlyArray<MatchReason>;
    }>;
}
export declare function renderJson(result: GuardrailCheckResult): GuardrailJsonPayload;
/**
 * PR-comment-friendly markdown. Phase 4's GitHub Actions workflow
 * pastes the output verbatim into a PR comment. Format:
 *
 *   ## Guardrail: PASSED / BLOCKED
 *   one-line summary
 *   <blocking findings table, when any>
 *   <warnings collapsible section, when any>
 *   <drift signal callout, when envelope drifted>
 *   <provenance footnote>
 */
export declare function renderMarkdown(result: GuardrailCheckResult): string;
//# sourceMappingURL=check-renderers.d.ts.map