import { z } from 'zod'; export interface HookPayload { tool?: string; tool_input?: Record; tool_output?: unknown; timestamp?: string; [key: string]: unknown; } export interface HookResult { success: boolean; data?: unknown; error?: string; timestamp: string; hook?: string; duration?: number; } export interface HookContext { workingDirectory: string; environment: string; timestamp: string; user?: string; project?: string; [key: string]: unknown; } export interface HookConfig { name: string; description: string; enabled: boolean; triggers?: HookTrigger[]; options?: Record; } export interface HookTrigger { event: HookEvent; tools?: string[]; filePatterns?: string[]; conditions?: HookCondition[]; } export declare const HOOK_EVENTS: readonly ["PreToolUse", "PostToolUse", "Stop", "SubagentStop", "PreAction", "PostAction", "SessionStart", "UserPromptSubmit"]; export type HookEvent = typeof HOOK_EVENTS[number]; export interface HookCondition { type: 'and' | 'or'; conditions: Array<{ field: string; operator: 'equals' | 'contains' | 'matches' | 'exists'; value?: unknown; }>; } export interface HookMatchResult { matches: boolean; hook: string; reason?: string; } export interface LegacyHook { type: 'command'; command: string; } export interface ClaudeSettings { hooks?: { [event: string]: Array<{ matcher: string; hooks: LegacyHook[]; }>; }; } export interface HookMetadata { name: string; version: string; author?: string; description: string; tags?: string[]; dependencies?: string[]; } export declare const BaseHookConfigSchema: z.ZodObject<{ command: z.ZodOptional; timeout: z.ZodDefault>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ command: z.ZodOptional; timeout: z.ZodDefault>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ command: z.ZodOptional; timeout: z.ZodDefault>; }, z.ZodTypeAny, "passthrough">>; export declare const ClaudekitConfigSchema: z.ZodObject<{ hooks: z.ZodDefault; timeout: z.ZodDefault>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ command: z.ZodOptional; timeout: z.ZodDefault>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ command: z.ZodOptional; timeout: z.ZodDefault>; }, z.ZodTypeAny, "passthrough">>>>>; }, "strip", z.ZodTypeAny, { hooks: Record; timeout: z.ZodDefault>; }, z.ZodTypeAny, "passthrough">>; }, { hooks?: Record; timeout: z.ZodDefault>; }, z.ZodTypeAny, "passthrough">> | undefined; }>; export type BaseHookConfig = z.infer; export type ClaudekitConfig = z.infer; //# sourceMappingURL=hooks.d.ts.map