/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
import { MicrowaveOvenControlInterface } from "./MicrowaveOvenControlInterface.js";
import { ClusterType } from "#types";
import { Identity } from "#general";
/**
 * MicrowaveOvenControlBehavior is the base class for objects that support interaction with
 * {@link MicrowaveOvenControl.Cluster}.
 *
 * MicrowaveOvenControl.Cluster requires you to enable one or more optional features. You can do so using
 * {@link MicrowaveOvenControlBehavior.with}.
 */
export declare const MicrowaveOvenControlBehaviorConstructor: ClusterBehavior.Type<ClusterType.Of<{
    readonly id: 95;
    readonly name: "MicrowaveOvenControl";
    readonly revision: 1;
    readonly features: {
        readonly powerAsNumber: import("#types").BitFlag;
        readonly powerInWatts: import("#types").BitFlag;
        readonly powerNumberLimits: import("#types").BitFlag;
    };
    readonly attributes: {
        readonly cookTime: import("#types").Attribute<number, any>;
        readonly maxCookTime: import("#types").FixedAttribute<number, any>;
        readonly wattRating: import("#types").OptionalFixedAttribute<number, any>;
    };
    readonly commands: {
        readonly setCookingParameters: import("#types").Command<import("#types").TypeFromFields<{
            cookMode: import("#types").OptionalFieldType<number>;
            cookTime: import("#types").OptionalFieldType<number>;
            powerSetting: import("#types").OptionalFieldType<number>;
            wattSettingIndex: import("#types").OptionalFieldType<number>;
            startAfterSetting: import("#types").OptionalFieldType<boolean>;
        }>, void, any>;
        readonly addMoreTime: import("#types").OptionalCommand<import("#types").TypeFromFields<{
            timeToAdd: import("#types").FieldType<number>;
        }>, void, any>;
    };
    readonly extensions: readonly [{
        readonly flags: {
            readonly powerAsNumber: true;
        };
        readonly component: {
            readonly attributes: {
                readonly powerSetting: import("#types").Attribute<number, any>;
            };
        };
    }, {
        readonly flags: {
            readonly powerNumberLimits: true;
        };
        readonly component: {
            readonly attributes: {
                readonly minPower: import("#types").FixedAttribute<number, any>;
                readonly maxPower: import("#types").FixedAttribute<number, any>;
                readonly powerStep: import("#types").FixedAttribute<number, any>;
            };
        };
    }, {
        readonly flags: {
            readonly powerInWatts: true;
        };
        readonly component: {
            readonly attributes: {
                readonly supportedWatts: import("#types").FixedAttribute<number[], any>;
                readonly selectedWattIndex: import("#types").Attribute<number, any>;
            };
        };
    }, {
        readonly flags: {
            readonly powerNumberLimits: true;
            readonly powerAsNumber: false;
        };
        readonly component: false;
    }, {
        readonly flags: {
            readonly powerAsNumber: true;
            readonly powerInWatts: true;
        };
        readonly component: false;
    }, {
        readonly flags: {
            readonly powerAsNumber: false;
            readonly powerInWatts: false;
        };
        readonly component: false;
    }];
}>, ClusterBehavior.Type<ClusterType.Of<{
    readonly id: 0;
    readonly revision: 0;
    readonly name: "Unknown";
    readonly attributes: {};
    readonly commands: {};
    readonly events: {};
}>, typeof ClusterBehavior, MicrowaveOvenControlInterface>, MicrowaveOvenControlInterface>;
export interface MicrowaveOvenControlBehaviorConstructor extends Identity<typeof MicrowaveOvenControlBehaviorConstructor> {
}
export declare const MicrowaveOvenControlBehavior: MicrowaveOvenControlBehaviorConstructor;
export interface MicrowaveOvenControlBehavior extends InstanceType<MicrowaveOvenControlBehaviorConstructor> {
}
export declare namespace MicrowaveOvenControlBehavior {
    interface State extends InstanceType<typeof MicrowaveOvenControlBehavior.State> {
    }
}
//# sourceMappingURL=MicrowaveOvenControlBehavior.d.ts.map