import { type ReactNode } from 'react'; import type { BookingDetails, BookingPracticeConsent, BookingResolvedPayment, BookingValidator, ConfirmationChannel } from './booking-types'; export interface BookingDetailsFormProps { value: Partial; onChange: (next: Partial) => void; onSubmit: (details: BookingDetails) => void | Promise; /** Hide email, skip its validation and omit it from submission. Default: false. */ hideEmail?: boolean; /** Keep email optional unless used for confirmation; `hideEmail` wins. Default: false. */ emailOptional?: boolean; requireCodiceFiscale?: boolean; requireDateOfBirth?: boolean; /** When `true` AND `insuranceType === 'public'`, render the Versichertennummer field. */ requireInsuranceNumber?: boolean; insuranceType?: 'private' | 'public'; showNote?: boolean; showReturningPatientFlag?: boolean; privacyPolicyUrl?: string; termsUrl?: string; /** * The practice's own privacy notice or terms checkbox, rendered after the * AlfaDocs ones. `null`, `undefined` or a blank label render nothing. */ practiceConsent?: BookingPracticeConsent | null; payment?: BookingResolvedPayment; paymentTermsUrl?: string; /** Prevent submit when the selected service's payment cannot be resolved. */ paymentBlocked?: boolean; /** Collect the billing address here for a paid service. The fiscal code, * when `requireCodiceFiscale` asks for one, moves into the same block. */ billingInDetails?: boolean; /** How the payment notice looks. See `BookingProps.paymentNoticeStyle`. */ paymentNoticeStyle?: 'plain' | 'highlighted'; /** * The selected service's `criticalInformationToAccept`. When set (and not * blank), a "Before you book" block renders above the consents and the * patient must tick its checkbox before submit enables. Rendered as * plain text — never parsed as HTML — except that `http(s)` URLs in it * become links. */ criticalInformationToAccept?: string; validateCodiceFiscale?: BookingValidator; validateInsuranceNumber?: BookingValidator; submitting?: boolean; /** Optional summary node rendered above the form (e.g. confirm-time chip). */ summarySlot?: ReactNode; defaultPhoneCountry?: string; /** * Channels the practice has enabled. When omitted, defaults to * `['email']` (picker hidden — single implicit channel). When the * resolved list has length 1 the picker stays hidden. */ confirmationChannels?: ConfirmationChannel[]; /** Pre-checked channels override; falls back to a smart default. */ defaultConfirmationChannels?: ConfirmationChannel[]; /** One channel only, picked with radios. See `BookingProps`. */ singleConfirmationChannel?: boolean; /** * Render an error Alert above the submit button. Set after an * `onSubmit` rejection, clear before retrying. The kit doesn't * disable the submit button while this is set — the patient can * re-submit immediately. */ submitError?: ReactNode; /** Read-only review while a code step is open: no alert, hint or submit button. */ locked?: boolean; } export declare const BookingDetailsForm: import("react").ForwardRefExoticComponent>; //# sourceMappingURL=details-form.d.ts.map