import { type OnboardingChoice, type ProviderStatus, type RickyConfig, type RickyMode } from './mode-selector.js';
import { type PromptShell } from '../prompts/index.js';
export interface OnboardingContext {
    isFirstRun?: boolean;
    isTTY?: boolean;
    quiet?: boolean;
    noBanner?: boolean;
    forceOnboarding?: boolean;
    columns?: number;
    blockedReason?: string | null;
    mode?: RickyMode;
    choice?: OnboardingChoice;
    providerStatus?: ProviderStatus;
    env?: {
        RICKY_BANNER?: string;
        NO_COLOR?: string;
    };
}
export interface RickyConfigStore {
    readProjectConfig(): Promise<RickyConfig | null>;
    readGlobalConfig(): Promise<RickyConfig | null>;
    writeProjectConfig(config: RickyConfig): Promise<void>;
}
export interface OnboardingOptions {
    input?: NodeJS.ReadableStream;
    output?: NodeJS.WritableStream;
    isTTY?: boolean;
    quiet?: boolean;
    verbose?: boolean;
    noBanner?: boolean;
    mode?: RickyMode;
    showBanner?: boolean;
    columns?: number;
    env?: NodeJS.ProcessEnv;
    configStore?: RickyConfigStore;
    providerStatus?: ProviderStatus;
    promptShell?: PromptShell;
    signal?: AbortSignal;
    firstRun?: boolean;
    skipFirstRunPersistence?: boolean;
    compactForExecution?: boolean;
}
export interface OnboardingResult {
    mode: OnboardingChoice;
    firstRun: boolean;
    bannerShown: boolean;
    output: string;
}
export declare function renderCloudGuidance(): string;
export declare function renderHandoffGuidance(): string;
export declare function renderInterruptedSetupRecovery(): string;
export declare function renderNonInteractiveSetupError(): string;
export declare function renderRecoveryGuidance(blockedReason?: string | null): string;
export declare function renderProviderConnectFailureRecovery(provider?: string): string;
export declare function renderWorkflowGenerationFailureRecovery(): string;
export declare function renderSuggestedNextAction(mode: RickyMode): string;
export declare function renderOnboarding(context?: OnboardingContext): string;
export declare function runOnboarding(options?: OnboardingOptions): Promise<OnboardingResult>;
