import { getUI, setUI } from '../ui';
import type { AgentUI } from '../ui/agent-ui';
import { LoggingUI } from '../ui/logging-ui';
import { ExitCode } from '../lib/exit-codes';
import { analytics } from '../utils/analytics';
export declare const lazyRunWizard: (argv: {
    integration?: import("../lib/constants").Integration;
    debug?: boolean;
    forceInstall?: boolean;
    installDir?: string;
    default?: boolean;
    signup?: boolean;
    authOnboarding?: "sign-in" | "create-account";
    signupEmail?: string;
    signupFullName?: string;
    localMcp?: boolean;
    ci?: boolean;
    apiKey?: string;
    appId?: string;
    menu?: boolean;
    benchmark?: boolean;
    region?: "us" | "eu";
}, session?: import("../lib/wizard-session.js").WizardSession | undefined, getAdditionalFeatureQueue?: (() => readonly import("../lib/wizard-session.js").AdditionalFeature[]) | undefined, featureProgress?: {
    onFeatureStart?: (feature: import("../lib/wizard-session.js").AdditionalFeature) => void;
    onFeatureComplete?: (feature: import("../lib/wizard-session.js").AdditionalFeature) => void;
} | undefined) => Promise<void>;
/**
 * Build a WizardSession from CLI argv, avoiding the repeated 12-field literal.
 * Also runs `bootstrapInstallDir` so every command path migrates legacy
 * storage and switches the logger to the per-project location once
 * `installDir` is known.
 */
export declare const buildSessionFromOptions: (options: Record<string, unknown>, overrides?: {
    ci?: boolean;
}) => Promise<import("../lib/wizard-session.js").WizardSession>;
/**
 * Shared credential resolution for non-interactive modes (agent + CI).
 * Handles --api-key shortcut, OAuth token refresh, and pendingOrgs.
 *
 * @param mode - 'agent' prompts via AgentUI, 'ci' auto-selects first env
 */
export declare const resolveNonInteractiveCredentials: (session: import("../lib/wizard-session").WizardSession, options: Record<string, unknown>, mode: "agent" | "ci", agentUI?: import("../ui/agent-ui").AgentUI) => Promise<void>;
/**
 * `@returns` false when create-account inputs cannot proceed (--agent mode:
 * emitted `signup_input_required`; tests mock `process.exit` — see caller).
 */
export declare function gateAgentSignupArguments(session: import('../lib/wizard-session').WizardSession, agentUI: AgentUI): boolean;
/**
 * CI signup with `--email`, `--full-name`, and `--region` requires `--accept-tos`.
 *
 * `@returns` false after invalid-args exit (caller must early-return — tests mock
 * `process.exit`).
 */
export declare function gateCiSignupAcceptToS(session: import('../lib/wizard-session').WizardSession): boolean;
/**
 * Whether the TUI auth task should release its wait and proceed to OAuth.
 *
 * The auth task runs concurrently with the screens, so we need a single
 * predicate that holds it until the foreground flow is ready for auth:
 *   - Intro is dismissed  (so the logo / welcome stays visible)
 *   - Region is picked    (so the OAuth URL targets the right zone)
 *   - regionForced is off (so /region mid-session doesn't race the new pick)
 *   - On the create-account path, ToS is accepted (so the browser doesn't open before
 *     EmailCapture / ToS finish — tosAccepted=true implies email capture
 *     is complete since ToS only renders after EmailCapture)
 *
 * Pure function, exported for unit testing — the original inline closure
 * silently regressed when its individual conditions drifted and there was
 * no test asserting the combined contract.
 */
export declare function isAuthTaskGateReady(session: import('../lib/wizard-session').WizardSession): boolean;
/**
 * Run the direct-signup wrapper for agent / CI / classic modes.
 *
 * No-op when account-creation provisioning inputs aren't all
 * set. On a non-null result, optionally runs `onSuccess` (classic uses this
 * to populate `session.credentials` via `resolveCredentials`). On null or
 * thrown errors, logs a human message that points at the mode's fallback
 * path (`fallbackLabel`) and returns — the caller's own auth path runs next.
 */
export declare const runDirectSignupIfRequested: (session: import("../lib/wizard-session").WizardSession, fallbackLabel: string, onSuccess?: () => Promise<void>) => Promise<void>;
/**
 * Re-export shared UI bootstrap helpers so command modules don't need to
 * re-import them from disparate paths.
 */
export { getUI, setUI, LoggingUI, ExitCode, analytics };
