/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { DoorLock } from "@matter/types/clusters/door-lock"; /** * Schedule-related data types for the DoorLock server implementation. */ export declare namespace LockSchedule { /** * Stored week day schedule record. */ class WeekDay { weekDayIndex: number; userIndex: number; daysMask: DoorLock.DaysMask; startHour: number; startMinute: number; endHour: number; endMinute: number; } /** * Stored year day schedule record. */ class YearDay { yearDayIndex: number; userIndex: number; localStartTime: number; localEndTime: number; } /** * Stored holiday schedule record. */ class Holiday { holidayIndex: number; localStartTime: number; localEndTime: number; operatingMode: DoorLock.OperatingMode; } /** * The current instant expressed the way WeekDay/YearDay schedules expect: YearDay's LocalStartTime/LocalEndTime * are Epoch Time in Seconds "with local time offset" (i.e. the local wall-clock reading, encoded as if it were * UTC), and WeekDay's Start/EndHour+Minute are plain local wall-clock time. */ interface LocalInstant { epochS: number; minuteOfDay: number; dayOfWeek: keyof DoorLock.DaysMask; } function localInstant(date: Date): LocalInstant; /** * Whether the schedules of a user grant access now. User types that are not schedule-restricted are always * granted here. * * @see {@link MatterSpecification.v161.Cluster} § 5.2.6.18.2, § 5.2.6.18.3, § 5.2.6.18.9, § 5.2.10.4.7 */ function isAccessGranted(userType: DoorLock.UserType, userIndex: number, weekDaySchedules: readonly WeekDay[], yearDaySchedules: readonly YearDay[], now: LocalInstant): boolean; } //# sourceMappingURL=LockSchedule.d.ts.map