/**
 * Hook to load booking form configuration and services
 *
 * Uses the Block API Client for type-safe API calls.
 * Must be used within a BlockApiProvider.
 */
import type { FormField } from '../components/multi-step/DynamicFormFields';
export interface Service {
    id: string;
    title: string;
    description?: string;
    durationMinutes?: number;
    paymentTerms?: import("../../blocks/shared/bookingPaymentTerms").BlockBookingPaymentTerms;
}
export interface BookingFormConfig {
    id: string;
    name: string;
    slug: string;
    settings?: {
        type: 'booking';
        serviceId?: string;
        serviceIds?: string[];
        resourceId?: string;
        requiresApproval?: boolean;
        successMessage?: string;
    };
    schema?: {
        version: string;
        fields: FormField[];
    };
}
interface UseBookingFormConfigResult {
    formConfig: BookingFormConfig | null;
    services: Service[];
    isLoading: boolean;
    error: string | null;
}
/**
 * Load booking form configuration and associated services
 *
 * Fetches the form definition and determines which services to load based on:
 * - Single service (serviceId)
 * - Multiple services (serviceIds array)
 * - All site services (no serviceId/serviceIds)
 *
 * Supports both UUID and slug for formId. When using a slug, siteId is required.
 *
 * @example
 * ```tsx
 * function BookingForm({ siteId, formId }) {
 *   const { formConfig, services, isLoading, error } = useBookingFormConfig(siteId, formId);
 *
 *   if (isLoading) return <Spinner />;
 *   if (error) return <Error message={error} />;
 *
 *   return <Form config={formConfig} services={services} />;
 * }
 * ```
 */
export declare function useBookingFormConfig(siteId: string, formId: string): UseBookingFormConfigResult;
export {};
