/**
 * Registry of goat-flow-shipped hook scripts.
 *
 * The registry is the dashboard/CLI authority for togglable hooks. The
 * manifest remains the authority for which agents have hook support.
 */
import type { AgentId } from "../types.js";
type HookEvent = "PreToolUse" | "PostToolUse" | "Stop";
/** Static manifest for one shipped hook and how agents register it. */
export interface HookSpec extends Record<"togglable", boolean> {
    id: string;
    displayName: string;
    description: string;
    event: HookEvent;
    matcher: string;
    scriptFiles: string[];
    primaryScript: string;
    defaultEnabled: boolean;
    requiresConfirmDialog: boolean;
    /** Runner-side timeout agents register for this hook; omitted = agent default. */
    timeoutSec?: number;
    unsupportedAgents?: Partial<Record<AgentId, string>>;
}
export declare function listHookSpecs(): HookSpec[];
export declare function getHookSpec(hookIdentifier: string): HookSpec | null;
export declare function isValidHookIdShape(hookIdentifier: string): boolean;
export {};
//# sourceMappingURL=hooks-registry.d.ts.map