import { Command, Options } from "@effect/cli";
import { Effect, Option } from "effect";
import { OutputHandlerService } from "../services/output-handler/service.js";
import type { OutputOptions } from "../services/output-handler/types.js";
export declare const withErrorLogging: (prefix: string) => (eff: Effect.Effect) => Effect.Effect;
export declare const makeCommand: (name: string, options: any, handler: (opts: any) => Effect.Effect, cfg: {
description: string;
errorPrefix: string;
}) => Command.Command;
export declare const setGlobalOutputOptions: (opts: OutputOptions | undefined) => void;
export declare const getGlobalOutputOptions: () => OutputOptions | undefined;
export declare const printText: (message: string, options?: OutputOptions) => Effect.Effect;
export declare const printJson: (value: unknown, compact: boolean, options?: OutputOptions) => void;
export declare const optQuiet: (desc?: string) => Options.Options>;
export declare const optForce: (desc?: string) => Options.Options>;
export declare const optOutput: (desc?: string) => Options.Options>;
export declare const optName: (desc?: string) => Options.Options;
export declare const setGlobalJson: (value: boolean | undefined) => void;
export declare const getGlobalJson: () => boolean;
export declare const setGlobalCompact: (value: boolean | undefined) => void;
export declare const getGlobalCompact: () => boolean;
export declare const makeCommandGroup: (name: string, options: any, children: readonly any[], cfg: {
description: string;
onInit?: (opts: any) => void;
}) => Command.Command;
}>;
//# sourceMappingURL=_shared.d.ts.map