export interface TargetPromptOptions { /** Stdout writer for headings (e.g. command's `this.log`). */ log: (msg: string) => void; /** Warning emitter (e.g. command's `this.logWarning(msg, flags)`). */ warn: (msg: string) => void; /** SIGINT handler that exits cleanly (e.g. `this.exit(130)`). */ onSigint: () => void; } /** * Auto-detect installed AI coding tools and prompt the user to choose which to * configure. Returns: * - `string[]` — chosen target IDs (may be empty if user picked nothing) * - `null` — no tools detected, or the user cancelled the prompt * * Only call this when stdout/stdin are TTYs and JSON mode is off; the caller * is responsible for that gating so it can fall through to non-interactive * auto-install when appropriate. */ export declare function promptForTargets(opts: TargetPromptOptions): Promise; export interface ResolveTargetsOptions { flags: { target: string[]; }; jsonMode: boolean; log: (msg: string) => void; warn: (msg: string) => void; exit: () => void; } /** * Apply the auto-detect → interactive-prompt → resolved-targets flow shared by * `init` and `skills install`. Returns the targets to install, or `null` if * the user cancelled or selected nothing (callers should bail out). * * When `--target auto` is not set, or when stdio is non-TTY, returns * `flags.target` unchanged so the runner can do its own auto-detection. */ export declare function resolveSkillsTargets(opts: ResolveTargetsOptions): Promise;