import type { HarnessHookEvent } from '../hooks.js'; export interface RawCommandHook { type: 'command'; command: string; timeout_ms?: number; } export type RawHook = RawCommandHook; export interface RawMatcherGroup { matcher?: string; hooks: RawHook[]; } export type RawHooksConfig = Partial>; export interface ResolvedCommandHook { type: 'command'; command: string; timeoutMs: number; pluginRoot?: string; } export interface ResolvedMatcherGroup { matcher?: string; hooks: ResolvedCommandHook[]; tier?: 'user-global' | 'project-local' | 'plugin'; } export type ResolvedHooksConfig = Partial>; export interface LoadedHooksConfig { hooks: ResolvedHooksConfig; userGlobalEnabled: boolean; allowProjectHooks: boolean; pluginHooksEnabled: boolean; sources: string[]; warnings: string[]; } export declare function compileMatcher(matcher: string | undefined): (toolName: string) => boolean; interface SingleFileResult { hooks: ResolvedHooksConfig; enableShellHooks: boolean; allowProjectHooks: boolean; enablePluginHooks: boolean; sources: string[]; warnings: string[]; } export declare function loadHooksConfigFile(path: string, tier: 'user-global' | 'project-local' | 'plugin', pluginRoot?: string): SingleFileResult; export declare function discoverPluginHooksConfigs(pluginsRoot?: string): Array<{ path: string; pluginRoot: string; }>; export interface LoadHooksConfigOptions { cwd?: string; pluginsDir?: string; } export declare function loadHooksConfig(opts?: LoadHooksConfigOptions): LoadedHooksConfig; export {};