export declare const APPOINTMENT_BOOKING_BLOCK_ID: "block.appointment-booking";
export declare const BOOKING_FORM_DATA_RESERVED_KEY_VALUES: readonly ["serviceId", "resourceId", "selectedDate", "selectedSlot", "discountCode", "selectedCollectionOptionKind", "selectedAppointmentPackageId"];
export type BookingFormDataReservedKey = (typeof BOOKING_FORM_DATA_RESERVED_KEY_VALUES)[number];
export type BookingReservedFieldCollision = Readonly<{
    fieldId: BookingFormDataReservedKey;
    message: string;
}>;
type FieldWithId = Readonly<{
    id: string;
}>;
type BookingSchemaWithFields = Readonly<{
    fields?: readonly FieldWithId[];
}>;
export declare const BOOKING_FORM_DATA_RESERVED_KEYS: ReadonlySet<string>;
export declare function isBookingFormDataReservedKey(value: string): value is BookingFormDataReservedKey;
export declare function formatBookingFormDataReservedFieldMessage(fieldId: BookingFormDataReservedKey): string;
export declare function formatBookingReservedFieldCollisionMessages(collisions: readonly BookingReservedFieldCollision[]): string;
/**
 * Finds custom booking form fields that collide with runtime-owned data keys.
 *
 * Results preserve first-seen field order, are deduplicated by field ID, and
 * use exact case-sensitive matching because the runtime stores JavaScript
 * object keys without case normalization.
 */
export declare function findBookingFormDataReservedFieldCollisions(fields: readonly FieldWithId[]): BookingReservedFieldCollision[];
export declare function collectBookingReservedFieldCollisions(schema: BookingSchemaWithFields, settings: unknown): BookingReservedFieldCollision[];
export {};
