import { Builder, BuilderElement, ElementType, TimeSlot } from './time-slot'; declare enum AvailabilitySlotType { OPEN = 0, CLOSED = 1, RESERVATION = 2 } /** * A timeslot of resource availability */ declare class AvailabilityTimeSlot extends TimeSlot { type: AvailabilitySlotType; constructor(type: AvailabilitySlotType, startOfSlot: Date, endOfSlot: Date); hasSameData(otherSlot: AvailabilityTimeSlot): boolean; } declare class AvailabilityBuilder extends Builder { currentSlotData: Record; addDataFromElement(element: AvailabilityBuilderElement): void; removeDataFromElement(element: AvailabilityBuilderElement): void; getTimeSlot(startOfSlot: Date, endOfSlot: Date): TimeSlot; } declare class AvailabilityBuilderElement extends BuilderElement { slotType: AvailabilitySlotType; constructor(elementDatetime: Date, elementType: ElementType, slotType: AvailabilitySlotType); } export { AvailabilitySlotType, AvailabilityTimeSlot, AvailabilityBuilder, AvailabilityBuilderElement };