import React from "react"; /** * Optional brand color overrides so onboarding matches the host app's sign-in * styling instead of the generic theme palette. Any omitted key falls back to * the active palette. */ export interface OnboardingTheme { background?: string; card?: string; border?: string; foreground?: string; mutedForeground?: string; primary?: string; primaryForeground?: string; /** Icon-tile background on OnboardingOptionCard. */ iconBackground?: string; } export interface OnboardingStepApi { /** Advance to the next step (or finish on the last step). */ next: () => void; /** Go back to the previous step (no-op on the first). */ back: () => void; index: number; total: number; isLast: boolean; } export interface OnboardingStepDef { key: string; title: string; subtitle?: string; /** Step body. Receives the wizard api so its own actions can advance. */ content: (api: OnboardingStepApi) => React.ReactNode; /** Show a "skip" affordance that advances without completing the step. */ canSkip?: boolean; /** Override the primary button label for this step. */ primaryLabel?: string; /** Hide the footer primary button (the step drives its own advance). */ hidePrimary?: boolean; /** * Gate advancing: when false the primary button is disabled (e.g. a required * step the user hasn't satisfied yet, like mandatory MFA enrollment). * Defaults to true. */ canContinue?: boolean; /** * Already-satisfied step. Counts toward the total + shows a filled progress * dot, but its body is never rendered — the wizard starts at the first * not-done step and skips done ones. Lets a resumed onboarding show absolute * position ("Step 3 of 3") instead of remaining-only ("1 of 1"). */ done?: boolean; } export interface OnboardingWizardProps { steps: OnboardingStepDef[]; /** Called after the final step's continue/skip. Mark onboarding complete here. */ onComplete: () => void | Promise; /** Branding slot rendered above the progress + card (e.g. logo + app name). */ header?: React.ReactNode; /** Card max width on large screens / web so it reads as an overlay, not full-bleed. */ maxWidth?: number; /** Show the "Step X of N" label under the progress dots. Default true. */ showStepLabel?: boolean; /** Brand color overrides so the chrome matches the app's sign-in styling. */ theme?: OnboardingTheme; skipLabel?: string; finishLabel?: string; continueLabel?: string; } export declare function OnboardingWizard({ steps, onComplete, header, maxWidth, showStepLabel, theme, skipLabel, finishLabel, continueLabel, }: OnboardingWizardProps): React.JSX.Element | null; export interface OnboardingOptionCardProps { icon?: React.ReactNode; title: string; subtitle?: string; /** Trailing element (e.g. a spinner or chevron). */ right?: React.ReactNode; onPress?: () => void; /** Highlight the card (e.g. completed/selected) with the primary color. */ selected?: boolean; /** Brand color overrides to match the app's sign-in styling. */ theme?: OnboardingTheme; } /** * Tappable card for onboarding step bodies — an icon tile, title + subtitle, * and optional trailing slot. Domain-agnostic; apps drop these into a wizard * step to offer choices (add passkey, connect a bank, …). */ export declare function OnboardingOptionCard({ icon, title, subtitle, right, onPress, selected, theme, }: OnboardingOptionCardProps): React.JSX.Element; export default OnboardingWizard; //# sourceMappingURL=onboarding-wizard.d.ts.map