/**
 * Model-alias setup sub-flows for the chat-setup wizard — extracted from
 * `chat_actions_prompts.ts` in WAB-SUB.3 to keep both files under the
 * 450-LOC cap.
 *
 * Single public entry point: `runModelAliasPrompts(secrets, mode)`. The
 * mode argument is supplied by the orchestrator after `runModeChoice`
 * resolves the user's explicit api-vs-subscription pick. Each branch
 * returns a populated `AliasResult` (or `null` on cancel).
 *
 * Branch shapes:
 *   - api          → model select + masked Anthropic key + key dest.
 *                    Writes alias { mode:'api', provider:'anthropic',
 *                    model, args:[] }.
 *   - subscription → cli + impl + args. No key prompt; subscription auth
 *                    flows through the host's own login state. Writes
 *                    alias { mode:'subscription', impl, cli, args }.
 *
 * Imports from: @clack/prompts, ../../packs/schemas/models, ./chat_state.
 * Imported by: src/setup/cli/chat_actions_prompts.ts (dispatcher only).
 */
import type { ModelAlias } from '../../packs/schemas/models.js';
import type { SecretsState } from './chat_state.js';
export interface AliasResult {
    alias: ModelAlias;
    /** Plaintext Anthropic API key (api mode only). null when subscription mode
     *  OR when user opted to provide the key via shell rc instead of .env. */
    apiKey: string | null;
    /** Whether to persist the apiKey to ~/.loop/.env. Always false in sub mode. */
    storeKey: boolean;
}
/**
 * Dispatch by mode. Called by the orchestrator AFTER `runModeChoice`
 * resolved the user's pick.
 */
export declare function runModelAliasPrompts(secrets: SecretsState, mode: 'api' | 'subscription'): Promise<AliasResult | null>;
//# sourceMappingURL=chat_actions_prompts_alias.d.ts.map