export type HookPhase = 'pre-commit' | 'commit-msg' | 'pre-push' | 'post-merge' | 'post-checkout';
export type HookFormat = 'bash' | 'yaml' | 'json';
export interface HookSection {
    /** Unique identifier, e.g. 'typescript-typecheck' */
    id: string;
    phase: HookPhase;
    /** Stack token this section targets */
    stack: string;
    /** Actual hook commands / config */
    content: string;
    description: string;
}
export interface HookPreview {
    phase: HookPhase;
    filePath: string;
    /** null if the file does not exist yet */
    currentContent: string | null;
    proposedAdditions: HookSection[];
    wouldModify: boolean;
    /** IDs of sections already present in the file */
    conflicts: string[];
}
export interface MergeResult {
    filePath: string;
    sectionsAdded: string[];
    sectionsUpdated: string[];
    /** Already present with same content — no change */
    sectionsSkipped: string[];
    content: string;
}
export interface GenerateHooksInput {
    projectPath: string;
    /** Override auto-detected stack */
    stack?: string[];
    /** Override auto-detected AI tool */
    aiTool?: string;
    /** Show what would be generated without writing files */
    dryRun?: boolean;
}
export interface PreviewHooksInput {
    projectPath: string;
    stack?: string[];
}
export interface MergeHooksInput {
    projectPath: string;
    sections: HookSection[];
    dryRun?: boolean;
}
//# sourceMappingURL=hook-generator.d.ts.map