/**
 * First-run setup and initialization
 *
 * Handles automatic setup when `ghostflow start` is run for the first time:
 * - Creates config directory (~/.config/ghostflow or ~/Library/Application Support/ghostflow)
 * - Prompts for REPO_PATH if not configured
 * - Generates launchd plist with correct paths
 *
 * NOTE: This module currently only supports macOS. All paths (config dir, LaunchAgents,
 * logs) are hardcoded for macOS conventions. Cross-platform support would require
 * platform detection and path abstraction.
 */
import { FileSystem, Terminal } from "@effect/platform";
import type { PlatformError } from "@effect/platform/Error";
import type { QuitException } from "@effect/platform/Terminal";
import { Effect, Option } from "effect";
declare const SetupError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
    readonly _tag: "SetupError";
} & Readonly<A>;
export declare class SetupError extends SetupError_base<{
    readonly message: string;
    readonly cause?: unknown;
}> {
}
export interface SetupResult {
    readonly configCreated: boolean;
    readonly envCreated: boolean;
    readonly plistCreated: boolean;
    readonly repoPath: Option.Option<string>;
}
/**
 * Run first-time setup if needed.
 *
 * Returns information about what was set up.
 * If everything is already configured, returns quickly with no changes.
 */
export declare const ensureSetup: (daemonPath: string) => Effect.Effect<SetupResult, SetupError | PlatformError | QuitException, FileSystem.FileSystem | Terminal.Terminal>;
/**
 * Check if setup has been completed (all required files exist).
 */
export declare const isSetupComplete: (daemonPath: string) => Effect.Effect<boolean, PlatformError, FileSystem.FileSystem>;
export {};
//# sourceMappingURL=setup.d.ts.map