import type { HookDispatcher } from './dispatcher.js'; import type { HookChain, HookDefinition, HookType, HooksConfig } from './types.js'; import type { ConfigManager } from '../config/manager.js'; export interface HookAuthoringAction { readonly kind: 'load' | 'save' | 'reload' | 'scaffold-hook' | 'scaffold-chain' | 'remove' | 'toggle' | 'simulate' | 'export' | 'import' | 'inspect'; readonly target: string; readonly timestamp: number; readonly detail?: string | undefined; } export interface HookSimulationResult { readonly eventPath: string; readonly matchedHooks: readonly { readonly pattern: string; readonly name: string; readonly type: HookType; readonly contract: string; }[]; readonly matchedChains: readonly { readonly name: string; readonly stepMatches: number; }[]; readonly capturedAt: number; } export interface HookConfigInspection { readonly path: string; readonly hookCount: number; readonly chainCount: number; readonly patterns: readonly string[]; } export interface HookWorkbenchOptions { readonly hookDispatcher: Pick; readonly configManager: Pick; readonly hooksFilePathResolver?: (() => string) | undefined; } export declare class HookWorkbench { private readonly hookDispatcher; private readonly hooksFilePathResolver; private managedConfig; private recentActions; private lastSimulation; private lastLoadedPath; constructor(hookDispatcher: Pick, hooksFilePathResolver: () => string); getHooksFilePath(): string; getManagedConfig(): HooksConfig; listManagedHooks(): Array<{ pattern: string; hook: HookDefinition; }>; listManagedChains(): HookChain[]; listRecentActions(limit?: number): HookAuthoringAction[]; getLastSimulation(): HookSimulationResult | null; private recordAction; loadManagedConfig(path?: string): HooksConfig; saveManagedConfig(path?: string): Promise; loadAndApplyManagedHooks(path?: string): Promise; scaffoldHook(name: string, match: string, type: HookType): HookDefinition; scaffoldChain(name: string, matches: readonly string[]): HookChain; removeManagedEntry(name: string): boolean; toggleManagedHook(name: string, enabled: boolean): boolean; exportManagedConfig(path: string): Promise; inspectManagedConfig(path: string): HookConfigInspection; importManagedConfig(path: string, strategy?: 'merge' | 'replace'): HooksConfig; simulate(eventPath: string, payload?: Record): HookSimulationResult; clear(): void; } export declare function createHookWorkbench(options: HookWorkbenchOptions): HookWorkbench; //# sourceMappingURL=workbench.d.ts.map