/** Exact pinned sources for ECC hook-profile and per-hook-disable semantics. */ export declare const ECC_HOOK_CONTROL_PROVENANCE: { readonly repository: "affaan-m/ECC"; readonly commit: "623f2c020f052319657674e4e6c29ab5d0ad566b"; readonly sources: readonly [{ readonly path: "hooks/hooks.json"; readonly sha256: "57d7e373deb8551169db88b5b6bc473c972177e496b682c8274d56af16aa882f"; }, { readonly path: "scripts/hooks/session-start-bootstrap.js"; readonly sha256: "48f949ebc4ab83a9e8d3b6bee91bb201511046a8c504f53f8d1e48e29f03bc0d"; }, { readonly path: "scripts/hooks/bash-hook-dispatcher.js"; readonly sha256: "b6e4163536d8092b63cfca205372d699f38550d6dd0fe2e74abde2f029f6ecbe"; }, { readonly path: "scripts/hooks/posttooluse-dispatcher.js"; readonly sha256: "79b841ca3106ea891dc7df22faa2e6fb8b20ec8fbc8a33407f745cade2d1765c"; }, { readonly path: "scripts/hooks/run-with-flags.js"; readonly sha256: "0f13516dbc51e6443c504d5f84cc531dae35b1eba7b993b6427207c224fd0e2f"; }, { readonly path: "scripts/lib/hook-flags.js"; readonly sha256: "16f5288b4e242d5bbbfc98c5ffc331ac8699049d616be136086363baaba9c294"; }]; /** * SHA-256 of JSON.stringify(sources.map(({ path, sha256 }) => [path, sha256])). * This binds the reviewed inventory and the runtime flag grammar together. */ readonly contentSha256: "1aef3f95cb5e91c0248998c26889c1a7806ecee76d10e8338107a849963cd7eb"; }; export declare const ECC_HOOK_CONTROL_SOURCE_CONTENT_SHA256: "1aef3f95cb5e91c0248998c26889c1a7806ecee76d10e8338107a849963cd7eb"; export declare const ECC_HOOK_PROFILES: readonly [{ readonly id: "minimal"; readonly label: "Minimal"; }, { readonly id: "standard"; readonly label: "Standard"; }, { readonly id: "strict"; readonly label: "Strict"; }]; export type EccHookProfile = (typeof ECC_HOOK_PROFILES)[number]["id"]; export interface EccHookControlsSelection { profile: EccHookProfile; disabledIds?: readonly string[]; } export interface EccHookControlCatalogEntry { id: string; event: string; profiles: readonly EccHookProfile[]; /** False only for the outer Bash wrapper whose children own the actual gates. */ disableEligible: boolean; } /** * Source order: non-gated wrapper, manifest/bootstrap gates, Bash dispatcher * gates, then PostToolUse dispatcher gates. AIH never contacts or executes ECC * to build this browser inventory. */ export declare const eccHookControlCatalog: readonly EccHookControlCatalogEntry[]; export declare const ECC_DISABLE_ELIGIBLE_HOOK_IDS: string[]; /** Validate and return ids in pinned source order. */ export declare function canonicalEccDisabledHookIds(ids: readonly string[], profile: EccHookProfile): string[];