import type { ReactNode } from 'react'; export interface SsoJoinFormProps { /** Display name of the identity the provider asserted, e.g. "Roman Smith". Falls back to `email`. */ name?: string; /** The asserted address. Stands in for the name when the provider gave none. */ email?: string; /** Provider picture, when there is one; the initials of the name otherwise. */ avatarUrl?: string; /** The organization being joined. */ organizationName: string; /** Role names as the server reports them (`ADMIN`), one tag each. Nothing is drawn for a plain member. */ roles?: string[]; agreedToTerms: boolean; onAgreedToTermsChange: (checked: boolean) => void; /** Primary action ("Create Account"). Only reachable once the terms are agreed. */ onSubmit: () => void; /** Leaves without creating anything ("Back to Login"). */ onBack: () => void; title?: string; subtitle?: ReactNode; submitLabel?: string; backLabel?: string; termsUrl?: string; privacyPolicyUrl?: string; /** Held while the submit navigates away: everything locks and the submit spins. */ loading?: boolean; disabled?: boolean; className?: string; } /** * "One Last Step" - the consent gate an SSO flow shows before it creates a user (accepting an * invitation, or a first login through a shared domain). Presentational + controlled: the consumer * loads the pending identity, owns the checkbox state and performs the submit navigation. * * The identity row is read-only on purpose. The server reads the identity from its own session * and would ignore anything edited here; the row exists so the person can see WHICH account and * WHICH organization they are about to be joined with - and walk away if it is the wrong one. */ export declare function SsoJoinForm({ name, email, avatarUrl, organizationName, roles, agreedToTerms, onAgreedToTermsChange, onSubmit, onBack, title, subtitle, submitLabel, backLabel, termsUrl, privacyPolicyUrl, loading, disabled, className, }: SsoJoinFormProps): import("react").JSX.Element; //# sourceMappingURL=sso-join-form.d.ts.map