import type { ProjectType } from "../core/config.js";
/**
 * Injectable reader for repository-local core.hooksPath. Implementations must
 * honor `signal` and release any owned handles before settling.
 */
export type HooksPathReader = (projectRoot: string, timeoutMs: number, signal: AbortSignal) => Promise<string | undefined>;
/** Hook installation outcome. */
export type HookInstallationInspection = {
    readonly status: "pass";
    readonly drift: readonly string[];
} | {
    readonly status: "warn";
    readonly drift: readonly string[];
} | {
    readonly status: "fail";
    readonly drift: readonly string[];
};
/**
 * Default fixed-argv local git-config reader.
 * @param projectRoot
 * @param timeoutMs
 * @param signal
 */
export declare const readCoreHooksPath: HooksPathReader;
/**
 * Inspect actual installed hook state for applicable stacks.
 * @param projectRoot - Canonical host root
 * @param types - Safely detected project types
 * @param reader - core.hooksPath reader
 * @param timeoutMs - Remaining shared deadline
 * @param signal - Shared cancellation signal
 * @returns Hook installation status
 */
export declare function inspectHookInstallation(projectRoot: string, types: readonly ProjectType[], reader: HooksPathReader, timeoutMs: number, signal: AbortSignal): Promise<HookInstallationInspection>;
//# sourceMappingURL=hook-inspection.d.ts.map