/**
 * @module _shared/host-integration
 *
 * Host-app integration helpers for Codex, Claude, and Cursor.
 * Default UX is snippet-first: print exactly what to paste, and only write
 * files when the user passes an explicit --write flag.
 */
export type HostSetupId = "codex" | "claude-code" | "claude-desktop" | "cursor";
export type HostSelection = HostSetupId | "claude" | "all";
export declare const HOST_SELECTIONS: readonly HostSelection[];
export interface HostDefinition {
    id: HostSetupId;
    label: string;
    surfaces: Array<"shell" | "project-guidance" | "mcp">;
    guidanceFiles: string[];
    configPath: (projectDir: string) => string;
    configKind: "codex-toml" | "mcp-json";
    notes: string[];
}
export interface HostFileAction {
    path: string;
    status: "would-write" | "wrote" | "would-merge" | "merged" | "skipped-exists" | "missing";
    reason?: string;
}
export interface HostSetupPlan {
    host: HostDefinition;
    snippet: string;
    command?: string;
    configPath: string;
    files: HostFileAction[];
    warnings: string[];
    nextSteps: string[];
}
export interface HostDoctorResult {
    host: HostDefinition;
    configPath: string;
    configured: boolean;
    guidanceFiles: HostFileAction[];
    warnings: string[];
    nextSteps: string[];
}
export declare function hostDefinitions(_projectDir?: string): HostDefinition[];
export declare function resolveHostSelection(selection: HostSelection): HostSetupId[];
export declare function renderHostSnippet(host: HostDefinition, projectDir: string): string;
export declare function claudeCodeAddCommand(): string;
export declare function planHostSetup(host: HostDefinition, projectDir: string, opts: {
    write?: boolean;
    dryRun?: boolean;
    force?: boolean;
}): Promise<HostSetupPlan>;
export declare function inspectHost(host: HostDefinition, projectDir: string): Promise<HostDoctorResult>;
