@kermank/slots
Version:
A TypeScript library for handling time slots, scheduling, and timezone operations
25 lines (24 loc) • 1.27 kB
TypeScript
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[];