import type { EnforcedContext } from "../core/gate-declaration-drift.js";
import type { Finding } from "./gate-report-types.js";
/** Reads the contexts the shipped templates require. Injectable for tests. */
export type TemplateEnforcementReader = (projectRoot: string) => Promise<readonly EnforcedContext[]>;
/**
 * The default reader: the shipped templates, normalized as apply normalizes.
 * @param projectRoot - Project root
 * @returns The contexts the templates require
 */
export declare const defaultTemplateEnforcementReader: TemplateEnforcementReader;
/**
 * Read the templates, degrading to `unknown` and never to a pass.
 * @param options - Inputs
 * @param options.projectRoot - Project root
 * @param options.read - Injectable reader, so tests never touch the package
 * @returns The contexts, or an honest unknown
 */
export declare function readTemplateEnforcement(options: {
    projectRoot: string;
    read?: TemplateEnforcementReader;
}): Promise<Finding<readonly EnforcedContext[]>>;
//# sourceMappingURL=gate-report-templates.d.ts.map