/**
 * Interactive setup utilities — new-user detection, prompts, browser open, handoff.
 * Uses only Node.js built-ins; no new runtime dependencies.
 */
/** Single-line readline prompt. Returns empty string in non-TTY environments. */
export declare function promptLine(question: string): Promise<string>;
/**
 * Keystroke-level prompt — shows question and waits for one of `validKeys`.
 * Falls back to validKeys[0] in non-TTY or CI environments.
 */
export declare function promptKey(question: string, validKeys: string[]): Promise<string>;
/** Open browser cross-platform. Non-fatal on error. */
export declare function openBrowser(url: string): void;
/** True when no setup marker exists → first install. */
export declare function isNewUser(): boolean;
/**
 * Interactive license key prompt shown to new users on the free tier.
 * Returns the entered key or null if user chose to skip.
 */
export declare function promptLicenseKey(currentTier?: string): Promise<string | null>;
/** Print post-install handoff banner with dashboard URL and quick-start commands. */
export declare function printHandoffBanner(dashUrl: string, opts?: {
    isNew?: boolean;
}): void;
/** Print a compact banner for returning users showing last-setup info. */
export declare function printReturningUserBanner(marker: {
    configuredIDEs: string[];
    setupCompletedAt: number;
}): void;
/**
 * Animated "syncing" spinner that resolves when the provided promise resolves.
 * Falls back to simple await in non-TTY environments.
 */
export declare function withSpinner<T>(label: string, work: Promise<T>): Promise<T>;
