import { type Command } from "commander";
import type { Harness, RefreshTemplates } from "../core/config.js";
import type { LisaDependencies } from "../core/lisa.js";
import type { ConsoleLogger } from "../logging/index.js";
/**
 * CLI options parsed from command line arguments. Shared by the `apply`
 * subcommand and the backwards-compatible positional default.
 */
export interface CLIOptions {
    dryRun?: boolean;
    yes?: boolean;
    validate?: boolean;
    skipGitCheck?: boolean;
    /** Bare `--refresh-templates` yields true; with a value, the raw path list. */
    refreshTemplates?: boolean | string;
    harness?: Harness;
}
/**
 * Resolve `--refresh-templates` into the selection the strategies consume.
 * @param value - Raw commander value: absent, true, or a comma-separated list
 * @returns The selection, or undefined when the flag was not passed
 */
export declare function parseRefreshTemplates(value: boolean | string | undefined): RefreshTemplates | undefined;
/**
 * Validate the --harness CLI argument. Commander invokes this with the raw
 * user-supplied string and expects either the parsed value or a thrown
 * InvalidArgumentError.
 * @param value - Raw argument value
 * @returns The validated harness
 */
export declare function parseHarnessArg(value: string): Harness;
/**
 * Register the apply-flow flags shared by every entry point that applies Lisa
 * to a project. Mutates and returns the command for chaining.
 * @param command - Command to decorate with shared options
 * @returns The same command instance
 */
export declare function addSharedOptions(command: Command): Command;
/**
 * Create Lisa dependencies based on options
 * @param dryRun - Whether in dry run mode
 * @param yesMode - Whether in non-interactive mode
 * @param logger - Logger instance
 * @returns Dependencies for Lisa
 */
export declare function createDependencies(dryRun: boolean, yesMode: boolean, logger: ConsoleLogger): LisaDependencies;
//# sourceMappingURL=shared-options.d.ts.map