export type SpecHookEvent = 'on-status-change' | 'on-create' | 'on-approve' | 'on-done' | 'on-drift-alert' | 'on-validation-fail';
export type SpecHookAction = 'challenge-spec' | 'check-readiness' | 'notify-slack' | 'create-git-branch' | 'generate-changelog' | 'send-email-digest' | 'run-validate';
export interface SpecHookFilter {
    tags?: string[];
    priority?: string;
    fromStatus?: string;
    toStatus?: string;
}
export interface SpecHook {
    name: string;
    event: SpecHookEvent;
    action: SpecHookAction;
    filter?: SpecHookFilter;
    enabled: boolean;
    lastRunAt?: string;
    runCount: number;
    failCount: number;
    createdAt: string;
}
export interface SpecHooksConfig {
    hooks: SpecHook[];
    updatedAt: string;
}
export interface ConfigureSpecHooksInput {
    projectPath: string;
    hookName: string;
    event: SpecHookEvent;
    action: SpecHookAction;
    filter?: SpecHookFilter;
    enabled?: boolean;
}
export interface ListSpecHooksInput {
    projectPath: string;
}
export interface TestSpecHookInput {
    projectPath: string;
    hookName: string;
    specId: string;
}
export interface DisableSpecHookInput {
    projectPath: string;
    hookName: string;
}
export interface EnableSpecHookInput {
    projectPath: string;
    hookName: string;
}
export interface SpecHookDispatchContext {
    event: SpecHookEvent;
    specId: string;
    projectPath: string;
    fromStatus?: string;
    toStatus?: string;
    tags?: string[];
    priority?: string;
}
export interface SpecHookDispatchResult {
    triggered: string[];
    skipped: string[];
    description: string;
}
//# sourceMappingURL=spec-hooks.d.ts.map