/**
 * Product-shaped Guidance Rules catalog rows (activation + artifact closure → UI DTO).
 * Pure transform — callers must not mutate registry storage here.
 */
import type { CaeLoadedRegistry } from "../../core/cae/cae-registry-load.js";
export type GuidanceFamilyKind = "policy" | "think" | "do" | "review";
export type GuidanceRuleCatalogAttention = "required" | "check" | "advisory";
export type GuidanceRuleMutationHints = {
    canClone: boolean;
    canActivate: boolean;
    canEditDraft: boolean;
    canRetire: boolean;
    /** Null when coarse mutation gates allow changes (per-row feasibility still lifecycle-gated elsewhere). */
    denialReason: string | null;
};
export type GuidanceRuleCatalogItem = {
    schemaVersion: 1;
    /** Deterministic order within the snapshot (1-based). */
    ordinal: number;
    family: GuidanceFamilyKind;
    /** Product label — e.g. “Rules to follow”. */
    familyLabel: string;
    /** Primary viewer title derived from artifact titles. */
    displayTitle: string;
    /** Plain-language WHEN this Guidance rule evaluates (scoped AND semantics). */
    appliesWhen: string;
    lifecycleState: "draft" | "active" | "retired" | "disabled";
    lifecycleLabel: string;
    priority: number;
    attention: GuidanceRuleCatalogAttention;
    acknowledgementStrength?: string | null;
    acknowledgementTokenPresent?: boolean;
    sources: {
        title: string;
    }[];
    mutation: GuidanceRuleMutationHints;
    /** Raw CAE identifiers for maintainers / debug tooling only — not product vocabulary. */
    debug: {
        activationId: string;
        artifactIds: string[];
    };
};
export type GuidanceRulesCatalog = {
    schemaVersion: 1;
    /** Active SQLite registry version id when applicable; synthetic tag for digest-backed JSON registries. */
    registrySnapshotTag: string | null;
    itemCount: number;
    degraded?: boolean;
    degradedCode?: string;
    degradedMessage?: string | null;
    items: GuidanceRuleCatalogItem[];
};
export declare function describeActivationScope(scope: unknown): string;
/** Workspace-level gates for versioned registry mutations (Dashboard / extension). */
export declare function deriveGuidanceRegistryMutationCapability(input: {
    registryStore: string;
    adminMutations: boolean;
}): {
    canMutate: boolean;
    denialReason: string | null;
};
/** Build deterministic catalog rows for every activation row in the loaded snapshot. Exported for golden tests. */
export declare function buildRulesCatalogFromRegistry(input: {
    loaded: CaeLoadedRegistry;
    registryStore: string;
    adminMutations: boolean;
    snapshotTag: string | null;
    familyLabels: Record<GuidanceFamilyKind, string>;
}): GuidanceRulesCatalog;
/** Top-level aggregator used by `cae-dashboard-summary` product model. */
export declare function buildGuidanceRulesCatalogEnvelope(input: {
    loadedOk: boolean;
    loaded: CaeLoadedRegistry | null;
    health: Record<string, unknown>;
    registryStoreRaw: unknown;
    adminMutations: boolean;
    familyLabels: Record<GuidanceFamilyKind, string>;
    loadFail?: {
        code?: string;
        message?: string;
    };
}): GuidanceRulesCatalog;
