/**
 * Custom hook for submitting appointment bookings
 *
 * Uses the Block API Client for type-safe API calls.
 * Must be used within a BlockApiProvider.
 */
import { type ActionResult, type FeedbackState } from '@riverbankcms/frontend-state';
import type { BookingSubmitResponse } from '../api/types';
import type { BookingSubmissionData } from '../nodes/booking-form.state';
type UseBookingSubmissionResult = {
    submit: (data: BookingSubmissionData) => Promise<ActionResult<BookingSubmitResponse, string>>;
    reportIssue: (message: string) => void;
    clearFeedback: () => void;
    feedback: FeedbackState;
    isSubmitting: boolean;
};
/**
 * Hook for submitting appointment bookings
 *
 * Handles API call, submission state, and feedback handling.
 *
 * @param _siteId - Site ID (currently unused; site context is derived from formId).
 *                  Kept for API consistency and potential future use.
 *
 * @example
 * ```tsx
 * function BookingForm({ siteId }) {
 *   const { submit, isSubmitting, feedback } = useBookingSubmission(siteId);
 *
 *   const handleSubmit = async () => {
 *     await submit({
 *       formId: 'booking-form',
 *       serviceId: selectedService,
 *       startAt: slot.startAt,
 *       endAt: slot.endAt,
 *       customFields: formData,
 *       timezone: 'America/New_York',
 *     });
 *   };
 * }
 * ```
 */
export declare function useBookingSubmission(_siteId: string): UseBookingSubmissionResult;
export {};
