/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { BasicMultiplex, MaybePromise, Timer } from "@matter/general"; import { OnOff } from "@matter/types/clusters/on-off"; declare const OnOffLogicBase: import("../../index.js").ClusterBehavior.Type, import("@matter/types").ClusterType.Concrete, new () => {}, "onOff">; /** * This is the default server implementation of {@link OnOffBehavior}. * * This implementation includes all features of {@link OnOff.Cluster}. You should use {@link OnOffServer.with} to * specialize the class for the features your implementation supports. Alternatively you can extend this class and * override the methods you need to change or add mandatory commands. * * The "OffOnly" and "Lighting" features are automatically supported because the commands are disabled by conformance. * The default implementation do not contain any logic for the DeadFrontBehavior feature because this is very use case * specific, so this needs to be implemented by the device implementor as needed. */ export declare class OnOffBaseServer extends OnOffLogicBase { #private; protected internal: OnOffBaseServer.Internal; initialize(): MaybePromise; get delayedPromises(): BasicMultiplex; [Symbol.asyncDispose](): Promise; on(): MaybePromise; off(): MaybePromise; /** * Default implementation notes: * This method uses the on/off methods when timed actions should occur. This means that it is enough to override * on() and off() with custom control logic. */ toggle(): MaybePromise; /** * Default implementation notes: * * This implementation ignores the effect and just calls off(). */ offWithEffect(): MaybePromise; onWithRecallGlobalScene(): Promise; /** * Default implementation notes: * * This method uses the on/off methods when timed actions should occur. This means that it is enough to override * on() and off() with custom control logic. */ onWithTimedOff({ onOffControl, offWaitTime, onTime }: OnOff.OnWithTimedOffRequest): MaybePromise; protected get timedOnTimer(): Timer; protected get delayedOffTimer(): Timer; } export declare namespace OnOffBaseServer { class Internal { timedOnTimer?: Timer; delayedOffTimer?: Timer; applySceneDelayTimer?: Timer; applyScenePendingOnOff?: boolean; delayedPromises?: BasicMultiplex; } } declare const OnOffServer_base: import("../../index.js").ClusterBehavior.Type, { deadFrontBehavior: false; lighting: false; offOnly: false; }>, import("@matter/types").ClusterType.Concrete, typeof OnOffBaseServer.Internal, "onOff">; export declare class OnOffServer extends OnOffServer_base { } export {}; //# sourceMappingURL=OnOffServer.d.ts.map