/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { MaybePromise } from "@matter/general";
import { ModeSelect } from "@matter/types/clusters/mode-select";
declare const ModeSelectBase: import("../../index.js").ClusterBehavior.Type<import("./ModeSelectBehavior.js").ModeSelectBehaviorConstructor, import("@matter/types").ClusterType.WithSupportedFeatures<ModeSelect, {
    onOff: true;
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "modeSelect">;
/**
 * This is the default server implementation of {@link ModeSelectBehavior}.
 *
 * This implementation supports StartupMode and OnMode handling, when the OnOff feature is activated. You should use
 * {@link ModeSelectServer.with} to specialize the class for the features your implementation supports. Alternatively
 * you can extend this class and override the methods you need.
 *
 * It should be sufficient to use the class without changes and just react on the currentMode changed events.
 */
export declare class ModeSelectBaseServer extends ModeSelectBase {
    #private;
    initialize(): MaybePromise;
    changeToMode({ newMode }: ModeSelect.ChangeToModeRequest): MaybePromise;
}
declare const ModeSelectServer_base: import("../../index.js").ClusterBehavior.Type<typeof ModeSelectBaseServer, ModeSelect, typeof ModeSelect, new () => {}, "modeSelect"> & {
    readonly id: "modeSelect";
};
export declare class ModeSelectServer extends ModeSelectServer_base {
}
export {};
//# sourceMappingURL=ModeSelectServer.d.ts.map