/** * Legacy Codex global-hook registration parser (PRI-625 Slice D; SPEC rev 2 * ยง17 legacy-installer retirement). * * Pure semantics โ€” NO I/O here. Each consumer (installer refusal, health * dualRegistration, setup flows) reads ~/.codex/hooks.json at its own edge * and hands the parsed JSON to this ONE parser, so the "is a PD-owned legacy * registration present" fact has a single authority without dragging a * package dependency across the installer/CLI/Console boundaries. * * The marker `__pd_marker: "pd-owned"` in hooks.json only ever came from the * legacy global installer. `legacyAsyncPostToolUse` additionally identifies * the retired `async: true` PostToolUse shape the Marketplace plugin never * writes โ€” the difference that tells the Owner a migration (not just * coexistence) is available. * * rc-1/rc-2/rc-5: hooks.json is untrusted โ€” Object.hasOwn membership checks * and type guards only, never `as` on the parsed shape. */ export declare const PD_HOOKS_MARKER = "pd-owned"; export declare const CODEX_HOOK_EVENT_NAMES: readonly ['PreToolUse', 'PostToolUse', 'UserPromptSubmit', 'SessionStart']; export interface LegacyCodexRegistration { detected: boolean; /** true when a PD-owned PostToolUse group still carries the legacy `async: true` shape. */ legacyAsyncPostToolUse: boolean; } export declare function parseLegacyCodexHooksRegistration(hooksJson: unknown): LegacyCodexRegistration; //# sourceMappingURL=legacy-registration.d.ts.map