/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { Bytes, type Cipher, MaybePromise, Timer } from "@matter/general"; import { DoorLock } from "@matter/types/clusters/door-lock"; import { LockAuth } from "./LockAuth.js"; import { LockSchedule } from "./LockSchedule.js"; declare const DoorLockBaseServerClass: import("../../index.js").ClusterBehavior.Type, import("@matter/types").ClusterType.Concrete, new () => {}, "doorLock">; /** * Full DoorLock server implementation covering all features including User and schedules. * * The server stores users, credentials, and schedules in nonvolatile extension fields on the State class. Credential * data is encrypted at rest with AES-128-CCM by default. Override {@link cipher} for custom encryption (e.g. HSM) or * {@link auth} to replace the entire storage backend. */ export declare class DoorLockBaseServer extends DoorLockBaseServerClass { #private; readonly state: DoorLockBaseServer.State; readonly internal: DoorLockBaseServer.Internal; initialize(): MaybePromise; [Symbol.asyncDispose](): MaybePromise; lockDoor(request: DoorLock.LockDoorRequest): MaybePromise; unlockDoor(request: DoorLock.UnlockDoorRequest): MaybePromise; unlockWithTimeout(request: DoorLock.UnlockWithTimeoutRequest): MaybePromise; unboltDoor(request: DoorLock.UnboltDoorRequest): MaybePromise; /** * The cipher used for credential encryption. Override to integrate with an HSM or other secure storage. */ get cipher(): Cipher; /** * The credential/user store with integrated encryption. Override to replace the entire storage backend. */ get auth(): LockAuth.Store; setUser(request: DoorLock.SetUserRequest): MaybePromise; getUser(request: DoorLock.GetUserRequest): DoorLock.GetUserResponse; clearUser(request: DoorLock.ClearUserRequest): MaybePromise; setCredential(request: DoorLock.SetCredentialRequest): DoorLock.SetCredentialResponse; getCredentialStatus(request: DoorLock.GetCredentialStatusRequest): DoorLock.GetCredentialStatusResponse; clearCredential(request: DoorLock.ClearCredentialRequest): MaybePromise; setWeekDaySchedule(request: DoorLock.SetWeekDayScheduleRequest): MaybePromise; getWeekDaySchedule(request: DoorLock.GetWeekDayScheduleRequest): DoorLock.GetWeekDayScheduleResponse; clearWeekDaySchedule(request: DoorLock.ClearWeekDayScheduleRequest): MaybePromise; setYearDaySchedule(request: DoorLock.SetYearDayScheduleRequest): MaybePromise; getYearDaySchedule(request: DoorLock.GetYearDayScheduleRequest): DoorLock.GetYearDayScheduleResponse; clearYearDaySchedule(request: DoorLock.ClearYearDayScheduleRequest): MaybePromise; setHolidaySchedule(request: DoorLock.SetHolidayScheduleRequest): MaybePromise; getHolidaySchedule(request: DoorLock.GetHolidayScheduleRequest): DoorLock.GetHolidayScheduleResponse; clearHolidaySchedule(request: DoorLock.ClearHolidayScheduleRequest): MaybePromise; } export declare namespace DoorLockBaseServer { class State extends DoorLockBaseServerClass.State { /** * Internal user database. */ users: LockAuth.User[]; /** * Internal credential store. */ credentials: LockAuth.Credential[]; /** * Internal week day schedule store. */ weekDaySchedules: LockSchedule.WeekDay[]; /** * Internal year day schedule store. */ yearDaySchedules: LockSchedule.YearDay[]; /** * Internal holiday schedule store. */ holidaySchedules: LockSchedule.Holiday[]; /** * AES-128-CCM key for credential encryption. Auto-generated on first use. */ credentialKey?: Bytes; } class Internal { wrongCodeCount: number; autoRelockTimer?: Timer; } } declare const DoorLockServer_base: import("../../index.js").ClusterBehavior.Type & { readonly id: "doorLock"; }; /** * Default DoorLock server with no features enabled. Use `.with()` to enable features. */ export declare class DoorLockServer extends DoorLockServer_base { } export {}; //# sourceMappingURL=DoorLockServer.d.ts.map