import type { CliRuntime } from "@velum-labs/routekit-cli-core"; import type { RouteKitControlClient } from "@velum-labs/routekit-control"; import { RouteKitFailure, type RouteKitManagedRuntime } from "@velum-labs/routekit-runtime/effect"; import { Effect } from "effect"; import type { RemoteStores } from "./repositories/stores.js"; export type TargetSelection = { local: boolean; remote?: string; }; export type ResolvedTelemetryTarget = { client: RouteKitControlClient; kind: "local" | "remote" | "peer"; }; export declare class CliSession { #private; readonly runtime: CliRuntime; targetSelection: TargetSelection; telemetryTarget: ResolvedTelemetryTarget | undefined; readonly remotes: RemoteStores; readonly effectRuntime: RouteKitManagedRuntime; constructor(runtime: CliRuntime, remotes?: RemoteStores, effectRuntime?: RouteKitManagedRuntime); dispose(): Promise; } export declare function runWithCliSession(session: CliSession, run: () => T): T; export declare function activeCliSession(): CliSession; /** Run an Effect program on this CLI invocation's process runtime. */ export declare function runCliEffect(effect: Effect.Effect): Promise; /** Run a synchronous CLI step as an Effect, tagging failures. */ export declare function cliTry(run: () => A): Effect.Effect; /** Run an asynchronous CLI step as an Effect, tagging failures. */ export declare function cliTryPromise(run: () => Promise): Effect.Effect; /** Construct a typed CLI failure for direct `yield*` from command programs. */ export declare function cliFailure(message: string): RouteKitFailure;