import * as Command from '@effect/cli/Command';
import * as Effect from 'effect/Effect';
import * as Layer from 'effect/Layer';
import { Plugin, PluginManager } from '../core';
type SubCommands = [Command.Command<any, any, any, any>, ...Array<Command.Command<any, any, any, any>>];
export type CreateCliAppOptions = {
    rootCommand: Command.Command<any, any, any, any>;
    subCommands?: SubCommands;
    pluginManager?: PluginManager.PluginManager;
    pluginLoader?: PluginManager.ManagerOptions['pluginLoader'];
    plugins?: Plugin.Plugin[];
    core?: string[];
    enabled?: string[];
    safeMode?: boolean;
};
/**
 * Creates a CLI application with plugin support.
 * Similar to useApp but for CLI environments.
 *
 * @example
 * const plugins = [ClientPluginCLI()];
 * const manager = await createCliApp({ plugins });
 * const commands = manager.capabilities.getAll(Capabilities.Command);
 *
 * @param options.pluginManager Optional existing PluginManager instance.
 * @param options.pluginLoader Function to load plugins by ID.
 * @param options.plugins All plugins available to the application.
 * @param options.core Core plugins which will always be enabled.
 * @param options.enabled Enabled plugins.
 * @param options.safeMode Whether to enable safe mode, which disables optional plugins.
 */
export declare const createCliApp: (args_0: CreateCliAppOptions) => Effect.Effect<{
    command: Command.Command<any, any, any, {
        [x: string]: any;
    }>;
    layer: Layer.Layer<any, any, never>;
}, Error, never>;
export {};
//# sourceMappingURL=cli.d.ts.map