import type { Scope } from '../shared/types.js';
import { type CliLogger } from '../ui/logger.js';
export interface GlobalOptions {
    scope?: Scope;
    dryRun?: boolean;
    verbose?: boolean;
    json?: boolean;
    cwd?: string;
}
/**
 * How per-pack scope resolution behaves in the tools-install flow:
 * - `interactive`: always run the per-pack `Where should X install?` radio.
 * - `defaults`: apply additive per-pack defaults without prompting.
 * - `gate`: deferred guided-setup signal — after pack selection, prompt the
 *   `Customize per-pack scope? (y/N)` gate (yes -> interactive radio,
 *   no/non-interactive -> defaults), and skip the gate entirely when no
 *   user-eligible pack is selected.
 */
export type ScopeSelectionMode = 'interactive' | 'defaults' | 'gate';
export interface CommandContext {
    scope: Scope;
    scopeSelection?: ScopeSelectionMode;
    dryRun: boolean;
    verbose: boolean;
    json: boolean;
    cwd: string;
    home: string;
    interactive: boolean;
    logger: CliLogger;
}
export declare function buildCommandContext(options: GlobalOptions): CommandContext;
//# sourceMappingURL=command-context.d.ts.map