import { Zcl } from "zigbee-herdsman";
import * as m from "../lib/modernExtend";
import type { KeyValue, ModernExtend, Range } from "../lib/types";
export declare const manufacturerOptions: {
    manufacturerCode: Zcl.ManufacturerCode;
};
export declare function ikeaLight(args?: Omit<m.LightArgs, "colorTemp"> & {
    colorTemp?: true | {
        range: Range;
        viaColor: true;
    };
}): ModernExtend;
export declare function ikeaBattery(): ModernExtend;
export declare function ikeaConfigureStyrbar(): ModernExtend;
export declare function ikeaConfigureRemote(): ModernExtend;
export declare function ikeaAirPurifier(): ModernExtend;
export declare function ikeaVoc(args?: Partial<m.NumericArgs<"manuSpecificIkeaVocIndexMeasurement", IkeaVocIndexMeasurement>>): ModernExtend;
export declare function ikeaConfigureGenPollCtrl(args?: {
    endpointId: number;
}): ModernExtend;
export declare function tradfriOccupancy(): ModernExtend;
export declare function tradfriRequestedBrightness(): ModernExtend;
export declare function tradfriCommandsOnOff(): ModernExtend;
export declare function tradfriCommandsLevelCtrl(): ModernExtend;
export declare function styrbarCommandOn(): ModernExtend;
export declare function ikeaDotsClick(args: {
    actionLookup?: KeyValue;
    dotsPrefix?: boolean;
    endpointNames: string[];
}): ModernExtend;
export declare function ikeaBilresaDouble(): ModernExtend;
export declare function ikeaArrowClick(args?: {
    styrbar?: boolean;
    bind?: boolean;
}): ModernExtend;
export declare function ikeaMediaCommands(): ModernExtend;
export interface IkeaAirPurifier {
    attributes: {
        filterRunTime: number;
        replaceFilter: number;
        filterLifeTime: number;
        controlPanelLight: number;
        particulateMatter25Measurement: number;
        childLock: number;
        fanMode: number;
        fanSpeed: number;
        deviceRunTime: number;
    };
    commands: never;
    commandResponses: never;
}
export declare function addCustomClusterManuSpecificIkeaAirPurifier(): ModernExtend;
export interface IkeaVocIndexMeasurement {
    attributes: {
        measuredValue: number;
        measuredMinValue: number;
        measuredMaxValue: number;
    };
    commands: never;
    commandResponses: never;
}
export declare function addCustomClusterManuSpecificIkeaVocIndexMeasurement(): ModernExtend;
export declare function addCustomClusterManuSpecificIkeaSmartPlug(): ModernExtend;
export interface IkeaMotionSensor {
    attributes: {
        onOnlyWhenDark: boolean;
        onTime: number;
    };
    commands: never;
    commandResponses: never;
}
export declare function addCustomClusterManuSpecificIkeaMotionSensor(): ModernExtend;
export declare function ikeaMotionSensorTriggerMode(): ModernExtend;
export declare function ikeaMotionSensorOnDuration(): ModernExtend;
export interface IkeaUnknown {
    attributes: never;
    commands: never;
    commandResponses: never;
}
export declare function addCustomClusterManuSpecificIkeaUnknown(): ModernExtend;
export interface TradfriButton {
    attributes: never;
    commands: {
        /** ID=0x01 */
        action1: {
            /** type=UINT8 | max=255 */
            data: number;
        };
        /** ID=0x02 */
        action2: {
            /** type=UINT8 | max=255 */
            data: number;
        };
        /** ID=0x03 */
        action3: {
            /** type=UINT8 | max=255 */
            data: number;
        };
        /** ID=0x04 */
        action4: {
            /** type=UINT8 | max=255 */
            data: number;
        };
        /** ID=0x06 */
        action6: {
            /** type=UINT8 | max=255 */
            data: number;
        };
    };
    commandResponses: never;
}
export declare function addCustomClusterTradfriButton(): ModernExtend;
export interface IkeaGenScenesCluster {
    attributes: never;
    commands: {
        tradfriArrowSingle: {
            value: number;
            value2: number;
        };
        tradfriArrowHold: {
            value: number;
        };
        tradfriArrowRelease: {
            value: number;
        };
    };
    commandResponses: never;
}
export declare function addIkeaGenScenesCluster(): ModernExtend;
export declare const ikeaModernExtend: {
    smartPlugChildLock: (args?: Partial<m.BinaryArgs<"manuSpecificIkeaSmartPlug">>) => ModernExtend;
    smartPlugLedEnable: (args?: Partial<m.BinaryArgs<"manuSpecificIkeaSmartPlug">>) => ModernExtend;
    /**
     * Remote reads the appVersion from the bound device (coordinator with default bindings) when toggle_hold is triggered.
     *
     * Low versions cause it to drop arrow hold/release commands, in favor of repeated arrow click commands.
     * https://github.com/Koenkk/zigbee2mqtt/issues/32109
     *
     * (Presumably old bulbs don't support the continuous cycling commands -> remote keeps backward compatibility)
     */
    handleAppVersionReadRequest: () => ModernExtend;
};
//# sourceMappingURL=ikea.d.ts.map