import * as Layer from "effect/Layer";
import { type InspectedInstallation, type SelectedRelease } from "@agentxm/cli-maintenance/self-update/application";
import * as Effect from "effect/Effect";
import { Screen } from "../screen/index.js";
import { Verbosity } from "../cli-flags/index.js";
/** CLI labels, progress timing, and command identities live for one composed invocation. */
export declare const makeCliUpgradeExecutionObserver: () => Effect.Effect<{
during: (stage: import("@agentxm/cli-maintenance/self-update/application").UpgradeExecutionStage, execution: Effect.Effect) => Effect.Effect;
installation: (inspection: Effect.Effect) => Effect.Effect;
release: (version: string | undefined, selection: Effect.Effect) => Effect.Effect;
command: (command: Pick<{
readonly purpose: "verification" | "detection" | "preparation" | "delegation" | "rollback";
readonly executable: string;
readonly args: readonly string[];
readonly executionState: "not-started" | "exited" | "timed-out";
readonly exitCode: number | null;
readonly stdout: string;
readonly stderr: string;
readonly outputTruncated: boolean;
}, "purpose" | "args" | "executable">, execution: Effect.Effect<{
readonly purpose: "verification" | "detection" | "preparation" | "delegation" | "rollback";
readonly executable: string;
readonly args: readonly string[];
readonly executionState: "not-started" | "exited" | "timed-out";
readonly exitCode: number | null;
readonly stdout: string;
readonly stderr: string;
readonly outputTruncated: boolean;
}, E, R>) => Effect.Effect<{
readonly purpose: "verification" | "detection" | "preparation" | "delegation" | "rollback";
readonly executable: string;
readonly args: readonly string[];
readonly executionState: "not-started" | "exited" | "timed-out";
readonly exitCode: number | null;
readonly stdout: string;
readonly stderr: string;
readonly outputTruncated: boolean;
}, E, R>;
download: (binaryName: string, read: (report: (received: number, total: number | undefined) => Effect.Effect) => Effect.Effect) => Effect.Effect;
}, never, Verbosity | Screen>;
/** The CLI selects and owns the observer for one composed invocation. */
export declare const CliUpgradeObservationLive: Layer.Layer;
//# sourceMappingURL=upgrade-observation.d.ts.map