/**
 * `neotoma setup` — composite onboarding command.
 *
 * Collapses `init --yes --idempotent`, `mcp config`,
 * `cli config`, hooks/plugin install, and permission-file writes into one
 * agent-runnable call so harnesses only need wildcard approval for
 * `neotoma *` to complete the full install-first flow.
 *
 * Read-only guidance stays under `mcp guide` and `cli guide`.
 */
import type { ToolId } from "./doctor.js";
import { runDoctor } from "./doctor.js";
import type { PermissionPatch } from "./permissions.js";
export interface SetupStepResult {
    id: string;
    ok: boolean;
    changed: boolean;
    skipped?: boolean;
    reason?: string;
    details?: unknown;
}
export interface SetupReport {
    tool: ToolId | null;
    dry_run: boolean;
    steps: SetupStepResult[];
    permission_patches: PermissionPatch[];
    doctor_before: Awaited<ReturnType<typeof runDoctor>>;
    doctor_after: Awaited<ReturnType<typeof runDoctor>>;
    overall_ok: boolean;
    /** Canonical single-line install confirmation. Agents grep for this to confirm install succeeded. */
    verify_line: string;
    /** One-line privacy/transport summary for privacy-conscious evaluators. */
    privacy_transport_summary: string;
}
/**
 * Compose the canonical install-verification line that agent harnesses grep for.
 * Format: `Neotoma installed at <path> (resolved via <manager>; v<version>; data_dir=<dir>; mcp=<transport>)`
 *
 * When the binary is not yet on PATH (e.g. a version-manager shell mismatch),
 * uses the global_bin path from the package root so the line is still emitted.
 */
export declare function buildVerifyLine(doctor: Awaited<ReturnType<typeof runDoctor>>): string;
/** One-line privacy summary appended to setup output so privacy-conscious evaluators see it immediately. */
export declare const PRIVACY_TRANSPORT_SUMMARY = "Transport: local stdio MCP (no network egress). Override with --mcp-transport=http for signed HTTP /mcp proxy.";
export interface RunSetupOptions {
    tool?: string | ToolId | null;
    dryRun?: boolean;
    yes?: boolean;
    cwd?: string;
    /** Skip permissions patching; useful for openclaw which uses a native plugin. */
    skipPermissions?: boolean;
    /** Permission scope for tools that expose project+user files. */
    scope?: "project" | "user" | "both";
    /** Skip lifecycle hook/plugin installation. */
    skipHooks?: boolean;
    /** Skip skills installation into the harness. */
    skipSkills?: boolean;
    /** Install skills at project level or user level. */
    skillsScope?: "project" | "user";
    /** Injected runners to keep setup pure + testable. */
    runners?: {
        init?: () => Promise<SetupStepResult>;
        mcpConfigure?: () => Promise<SetupStepResult>;
        cliInstructionsConfigure?: () => Promise<SetupStepResult>;
        hooksInstall?: () => Promise<SetupStepResult>;
    };
}
export declare function runSetup(options?: RunSetupOptions): Promise<SetupReport>;
//# sourceMappingURL=setup.d.ts.map