import type { AiderDoctorReport } from "../aider/index.js";
import type { AvanteDoctorReport } from "../avante/index.js";
import type { ClaudeCodeDoctorReport, ClaudeCodeHookCommandOptions } from "../claude-code/index.js";
import type { ClineDoctorReport } from "../cline/index.js";
import type { CodeBuddyDoctorReport, CodeBuddyHookCommandOptions } from "../codebuddy/index.js";
import type { ContinueDoctorReport } from "../continue/index.js";
import type { CodexDoctorReport, CodexHookCommandOptions } from "../codex/index.js";
import type { CopilotCliDoctorReport } from "../copilot-cli/index.js";
import type { CursorDoctorReport } from "../cursor/index.js";
import type { DroidDoctorReport, DroidHookCommandOptions } from "../droid/index.js";
import type { GeminiCliDoctorReport } from "../gemini-cli/index.js";
import type { JunieDoctorReport } from "../junie/index.js";
import type { OpenHandsDoctorReport } from "../openhands/index.js";
import type { PiDoctorReport } from "../pi/index.js";
import type { VscodeCopilotDoctorReport } from "../vscode-copilot/index.js";
import type { ZedDoctorReport } from "../zed/index.js";
export type HookHealthStatus = "ok" | "warn" | "broken" | "disabled";
export type HookIntegrationDoctorReport = {
    aider: AiderDoctorReport;
    avante: AvanteDoctorReport;
    codex: CodexDoctorReport;
    "claude-code": ClaudeCodeDoctorReport;
    cline: ClineDoctorReport;
    codebuddy: CodeBuddyDoctorReport;
    continue: ContinueDoctorReport;
    cursor: CursorDoctorReport;
    droid: DroidDoctorReport;
    "gemini-cli": GeminiCliDoctorReport;
    junie: JunieDoctorReport;
    openhands: OpenHandsDoctorReport;
    pi: PiDoctorReport;
    "vscode-copilot": VscodeCopilotDoctorReport;
    zed: ZedDoctorReport;
    "copilot-cli": CopilotCliDoctorReport;
};
export type HookDoctorReport = {
    status: HookHealthStatus;
    integrations: HookIntegrationDoctorReport;
};
export type HookDoctorCommandOptions = CodexHookCommandOptions & ClaudeCodeHookCommandOptions & CodeBuddyHookCommandOptions & DroidHookCommandOptions;
export type HookIntegrationDoctorEntry = [
    keyof HookIntegrationDoctorReport,
    HookIntegrationDoctorReport[keyof HookIntegrationDoctorReport]
];
export declare function getAvailableHookIntegrationNames(): Array<keyof HookIntegrationDoctorReport>;
export declare function isInstalledHookIntegration(report: HookIntegrationDoctorReport[keyof HookIntegrationDoctorReport]): boolean;
export declare function getInstalledHookIntegrations(report: HookDoctorReport): HookIntegrationDoctorEntry[];
export declare function doctorInstalledHooks(options?: HookDoctorCommandOptions): Promise<HookDoctorReport>;
