UNPKG

@kermank/slots

Version:

A TypeScript library for handling time slots, scheduling, and timezone operations

25 lines (24 loc) 1.27 kB
import { DateTime, Duration } from 'luxon'; import { Slot, MetadataMerger, OverlapStrategy } from '../types'; /** * Checks if two slots overlap based on the specified strategy */ export declare function doSlotsOverlap(a: Slot, b: Slot, strategy?: OverlapStrategy): boolean; /** * Merges two slots and their metadata */ export declare function mergeSlots(a: Slot, b: Slot, metadataMerger?: MetadataMerger): Slot; /** * Merges an array of slots, combining any that overlap based on the specified strategy */ export declare function mergeOverlappingSlots(slots: Slot[], metadataMerger?: MetadataMerger, overlapStrategy?: OverlapStrategy): Slot[]; /** * Generates an array of slots between start and end date with given duration and overlap interval * @param startDate The start date for the first slot * @param endDate The end date for the last slot * @param duration Duration of each slot in milliseconds * @param overlapInterval Interval between start of consecutive slots in milliseconds * @param metadata Optional metadata to apply to all generated slots * @returns Array of generated slots */ export declare function generateSlots(start: DateTime, end: DateTime, duration: Duration, overlapInterval: Duration, metadata?: Record<string, any>): Slot[];