import dayjs from 'dayjs';
import type { VenueBookingSlotConfig, VenueResourceRawData, VenueTimeSlotGrid, ResourceProductMapping } from '../types';
export declare function isBusinessHoursCrossDay(config: VenueBookingSlotConfig): boolean;
export declare function generateTimeLabels(config: VenueBookingSlotConfig): string[];
export declare function isSlotOccupied(slotStart: dayjs.Dayjs, slotEnd: dayjs.Dayjs, occupiedTimes: Array<{
    start_at: string;
    end_at: string;
}>): boolean;
interface SlotEvent {
    start_at: string;
    end_at: string;
    pax: number;
}
export declare function collectEventsForDate(resource: VenueResourceRawData, date: string, config: VenueBookingSlotConfig): SlotEvent[];
export declare function computeSlotStatus(params: {
    slotStart: dayjs.Dayjs;
    slotEnd: dayjs.Dayjs;
    events: SlotEvent[];
    resourceType: 'single' | 'multiple' | 'capacity';
    capacity: number;
}): {
    status: 'available' | 'occupied' | 'partially_occupied';
    remainingCapacity: number;
};
export declare function buildTimeSlotGrid(params: {
    date: string;
    config: VenueBookingSlotConfig;
    rawResources: VenueResourceRawData[];
    resourceProductMap: Map<number | string, ResourceProductMapping[]>;
    quotationPriceMap?: Map<string, string | null>;
}): VenueTimeSlotGrid;
export {};
