import type { HookPlatform } from "./platform.js";
import { setupClineHooks } from "./shell-templates.js";
export declare const SUPPORTED_PLATFORMS: readonly ["codex", "claude", "cursor", "gemini", "antigravity"];
export type Platform = (typeof SUPPORTED_PLATFORMS)[number];
export interface SetupResult {
    platform: string;
    config_path: string;
    status: "created" | "updated" | "already_configured";
    note?: string;
}
export interface InstallRulesResult {
    path: string;
    action: "created" | "updated" | "skipped" | "force-updated" | "error";
    warning?: string;
    error?: string;
}
export declare function stripCodesiftToolApprovalOverrides(content: string): {
    content: string;
    removed: number;
};
export declare function ensureCodesiftDefaultToolsApprovalApprove(content: string): {
    content: string;
    changed: boolean;
};
export declare function installRules(platform: string, homeDir: string, options?: SetupOptions): Promise<InstallRulesResult>;
export declare function setupClaudeHooks(): Promise<void>;
export declare function setupCodexHooks(): Promise<void>;
export declare function setupGeminiHooks(): Promise<void>;
export { setupClineHooks };
export declare function setupHooksForPlatform(platform: HookPlatform): Promise<void>;
export interface SetupOptions {
    hooks?: boolean;
    rules?: boolean;
    force?: boolean;
    /** Install global git post-commit hook for editor-agnostic review-queue
     *  automation. Defaults to true when `hooks: true` is set, since the hook
     *  is editor-agnostic and benefits all platforms equally. Pass `false` to
     *  opt out (e.g., users who manage git hooks via Husky / Lefthook). */
    gitHooks?: boolean;
}
export declare function setup(platform: string, options?: SetupOptions): Promise<SetupResult>;
export declare function setupAll(options?: SetupOptions): Promise<SetupResult[]>;
export declare function formatSetupResult(result: SetupResult, rulesResult?: InstallRulesResult): string;
export declare function formatSetupLines(platform: string, options?: SetupOptions): Promise<string[]>;
//# sourceMappingURL=setup.d.ts.map