import { ColorXY } from "./color";
import * as exposes from "./exposes";
import * as modernExtend from "./modernExtend";
import type { Fz, KeyValue, KeyValueAny, ModernExtend, Tz } from "./types";
export declare const knownEffects: {
    "0180": string;
    "0280": string;
    "0380": string;
    "0980": string;
    "0a80": string;
    "0b80": string;
    "0c80": string;
    "0d80": string;
    "0e80": string;
    "0f80": string;
    "1080": string;
    "1180": string;
};
interface PhilipsGenBasic {
    attributes: {
        ledIndication: boolean;
        deviceMode: number;
    };
    commands: never;
    commandResponses: never;
}
export interface PhilipsMsOccupancySensing {
    attributes: {
        motionSensitivity: number;
    };
    commands: never;
    commandResponses: never;
}
interface ManuSpecificPhilips {
    attributes: {
        /** ID=0x0031 | type=BITMAP16 | write=true */
        config: number;
    };
    commands: never;
    commandResponses: {
        /** ID=0x00 */
        hueNotification: {
            /** type=UINT8 | max=255 */
            button: number;
            /** type=UINT24 | max=16777215 */
            unknown1: number;
            /** type=UINT8 | max=255 */
            type: number;
            /** type=UINT8 | max=255 */
            unknown2: number;
            /** type=UINT8 | max=255 */
            time: number;
            /** type=UINT8 | max=255 */
            unknown3: number;
        };
    };
}
interface ManuSpecificPhilips2 {
    attributes: {
        /** ID=0x0002 | type=OCTET_STR | write=true */
        state: Buffer;
    };
    commands: {
        /** ID=0x00 */
        multiColor: {
            /** type=BUFFER */
            data: Buffer;
        };
    };
    commandResponses: never;
}
export declare const manuSpecificPhilips2Fz: Fz.Converter<"manuSpecificPhilips2", ManuSpecificPhilips2, ["attributeReport", "readResponse"]>;
declare const philipsModernExtend: {
    addPhilipsGenBasicCluster: () => ModernExtend;
    addPhilipsMsOccupancySensingCluster: () => ModernExtend;
    addCustomClusterManuSpecificPhilipsContact: () => ModernExtend;
    addManuSpecificPhilipsCluster: () => ModernExtend;
    addManuSpecificPhilips2Cluster: () => ModernExtend;
    addManuSpecificPhilips3Cluster: () => ModernExtend;
    light: (args?: modernExtend.LightArgs & {
        hueEffect?: boolean;
        gradient?: true | {
            extraEffects: string[];
        };
    }) => ModernExtend;
    onOff: (args?: modernExtend.OnOffArgs) => ModernExtend;
    twilightOnOff: () => ModernExtend;
    contact: () => ModernExtend;
};
export { philipsModernExtend as m };
declare const philipsTz: {
    gradient_scene: {
        key: string[];
        convertSet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, value: unknown, meta: Tz.Meta) => Promise<void>;
    };
    gradient: (opts?: {
        reverse: boolean;
    }) => {
        key: string[];
        convertSet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, value: unknown, meta: Tz.Meta) => Promise<{
            state: {
                gradient_style: unknown;
            };
        }>;
        convertGet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, meta: Tz.Meta) => Promise<void>;
    };
    effect: {
        key: string[];
        convertSet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, value: unknown, meta: Tz.Meta) => Promise<void | {
            state?: KeyValue;
            membersState?: {
                [s: string]: KeyValue;
            };
        } | {
            state: KeyValueAny;
        }>;
    };
    hue_power_on_behavior: {
        key: string[];
        convertSet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, value: unknown, meta: Tz.Meta) => Promise<{
            state: {
                hue_power_on_behavior: unknown;
            };
        }>;
    };
    hue_power_on_error: {
        key: string[];
        convertSet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, value: unknown, meta: Tz.Meta) => void;
    };
    hue_motion_sensitivity: {
        key: string[];
        convertSet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, value: unknown, meta: Tz.Meta) => Promise<{
            state: {
                motion_sensitivity: unknown;
            };
        }>;
        convertGet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, meta: Tz.Meta) => Promise<void>;
    };
    hue_motion_led_indication: {
        key: string[];
        convertSet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, value: unknown, meta: Tz.Meta) => Promise<{
            state: {
                led_indication: unknown;
            };
        }>;
        convertGet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, meta: Tz.Meta) => Promise<void>;
    };
    hue_wall_switch_device_mode: {
        key: string[];
        convertSet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, value: unknown, meta: Tz.Meta) => Promise<void>;
        convertGet: (entity: import("zigbee-herdsman/dist/controller/model").Endpoint | import("zigbee-herdsman/dist/controller/model").Group, key: string, meta: Tz.Meta) => Promise<void>;
    };
};
export { philipsTz as tz };
export declare const gradientScenes: {
    blossom: string;
    crocus: string;
    precious: string;
    narcissa: string;
    beginnings: string;
    first_light: string;
    horizon: string;
    valley_dawn: string;
    sunflare: string;
    emerald_flutter: string;
    memento: string;
    resplendent: string;
    scarlet_dream: string;
    lovebirds: string;
    smitten: string;
    glitz_and_glam: string;
    promise: string;
    ruby_romance: string;
    city_of_love: string;
    honolulu: string;
    savanna_sunset: string;
    golden_pond: string;
    runy_glow: string;
    tropical_twilight: string;
    miami: string;
    cancun: string;
    rio: string;
    chinatown: string;
    ibiza: string;
    osaka: string;
    tokyo: string;
    motown: string;
    fairfax: string;
    galaxy: string;
    starlight: string;
    "blood moon": string;
    artic_aurora: string;
    moonlight: string;
    nebula: string;
    sundown: string;
    blue_lagoon: string;
    palm_beach: string;
    lake_placid: string;
    mountain_breeze: string;
    lake_mist: string;
    ocean_dawn: string;
    frosty_dawn: string;
    sunday_morning: string;
    emerald_isle: string;
    spring_blossom: string;
    midsummer_sun: string;
    autumn_gold: string;
    spring_lake: string;
    winter_mountain: string;
    midwinter: string;
    amber_bloom: string;
    lily: string;
    painted_sky: string;
    winter_beauty: string;
    orange_fields: string;
    forest_adventure: string;
    blue_planet: string;
    soho: string;
    vapor_wave: string;
    magneto: string;
    tyrell: string;
    disturbia: string;
    hal: string;
    golden_star: string;
    under_the_tree: string;
    silent_night: string;
    rosy_sparkle: string;
    festive_fun: string;
    colour_burst: string;
    crystalline: string;
};
export declare const hueEffects: {
    candle: string;
    fireplace: string;
    colorloop: string;
    sunrise: string;
    sparkle: string;
    opal: string;
    glisten: string;
    sunset: string;
    underwater: string;
    cosmos: string;
    sunbeam: string;
    enchant: string;
    stop_hue_effect: string;
};
declare const philipsFz: {
    hue_tap_dial: {
        cluster: "manuSpecificPhilips";
        type: "commandHueNotification";
        options: exposes.Composite[];
        convert: (model: import("./types").Definition, msg: Fz.Message<"manuSpecificPhilips", ManuSpecificPhilips, "commandHueNotification">, publish: import("./types").Publish, options: KeyValue, meta: Fz.Meta) => KeyValue;
    };
    gradient: {
        cluster: "manuSpecificPhilips2";
        type: ["attributeReport", "readResponse"];
        convert: (model: import("./types").Definition, msg: Fz.Message<"manuSpecificPhilips2", ManuSpecificPhilips2, ["attributeReport", "readResponse"]>, publish: import("./types").Publish, options: KeyValue, meta: Fz.Meta) => {
            gradient: string[];
        } | {
            gradient?: undefined;
        };
    };
    hue_smart_button_event: {
        cluster: "manuSpecificPhilips";
        type: "commandHueNotification";
        convert: (model: import("./types").Definition, msg: Fz.Message<"manuSpecificPhilips", ManuSpecificPhilips, "commandHueNotification">, publish: import("./types").Publish, options: KeyValue, meta: Fz.Meta) => {
            action: any;
        };
    };
    hue_wall_switch: {
        cluster: "manuSpecificPhilips";
        type: "commandHueNotification";
        convert: (model: import("./types").Definition, msg: Fz.Message<"manuSpecificPhilips", ManuSpecificPhilips, "commandHueNotification">, publish: import("./types").Publish, options: KeyValue, meta: Fz.Meta) => {
            action: string;
        };
    };
    hue_dimmer_switch: {
        cluster: "manuSpecificPhilips";
        type: "commandHueNotification";
        options: exposes.Composite[];
        convert: (model: import("./types").Definition, msg: Fz.Message<"manuSpecificPhilips", ManuSpecificPhilips, "commandHueNotification">, publish: import("./types").Publish, options: KeyValue, meta: Fz.Meta) => KeyValueAny;
    };
    hue_twilight: {
        cluster: "manuSpecificPhilips";
        type: "commandHueNotification";
        convert: (model: import("./types").Definition, msg: Fz.Message<"manuSpecificPhilips", ManuSpecificPhilips, "commandHueNotification">, publish: import("./types").Publish, options: KeyValue, meta: Fz.Meta) => KeyValueAny;
    };
    hue_motion_led_indication: {
        cluster: "genBasic";
        type: ["attributeReport", "readResponse"];
        convert: (model: import("./types").Definition, msg: Fz.Message<"genBasic", PhilipsGenBasic, ["attributeReport", "readResponse"]>, publish: import("./types").Publish, options: KeyValue, meta: Fz.Meta) => {
            led_indication: boolean;
        };
    };
    hue_motion_sensitivity: {
        cluster: "msOccupancySensing";
        type: ["attributeReport", "readResponse"];
        convert: (model: import("./types").Definition, msg: Fz.Message<"msOccupancySensing", PhilipsMsOccupancySensing, ["attributeReport", "readResponse"]>, publish: import("./types").Publish, options: KeyValue, meta: Fz.Meta) => {
            motion_sensitivity: any;
        };
    };
    hue_wall_switch_device_mode: {
        cluster: "genBasic";
        type: ["attributeReport", "readResponse"];
        convert: (model: import("./types").Definition, msg: Fz.Message<"genBasic", PhilipsGenBasic, ["attributeReport", "readResponse"]>, publish: import("./types").Publish, options: KeyValue, meta: Fz.Meta) => {
            device_mode: string;
        };
    };
    hue_tap: {
        cluster: "greenPower";
        type: ["commandNotification", "commandCommissioningNotification"];
        convert: (model: import("./types").Definition, msg: Fz.Message<"greenPower", undefined, ["commandNotification", "commandCommissioningNotification"]>, publish: import("./types").Publish, options: KeyValue, meta: Fz.Meta) => {
            action: string;
        };
    };
};
export { philipsFz as fz };
export declare enum HueEffectType {
    NoEffect = 0,
    Candle = 1,
    Fireplace = 2,
    Prism = 3,
    Sunrise = 9,
    Sparkle = 10,
    Opal = 11,
    Glisten = 12,
    Sunset = 13,
    Underwater = 14,
    Cosmos = 15,
    Sunbeam = 16,
    Enchant = 17
}
export declare enum HueGradientStyle {
    Linear = 0,
    Scattered = 2,
    Mirrored = 4
}
export interface Philips2Data {
    onOff?: boolean;
    brightness?: number;
    colorMirek?: number;
    colorXY?: ColorXY;
    fadeSpeed?: number;
    effectType?: HueEffectType;
    gradientParams?: {
        scale: number;
        offset: number;
    };
    effectSpeed?: number;
    gradientColors?: {
        style: HueGradientStyle;
        colors: ColorXY[];
    };
}
export declare function DecodeManuSpecificPhilips2(data: Buffer): Philips2Data;
export declare function EncodeManuSpecificPhilips2(data: Philips2Data): ArrayBuffer;
export declare function decodeGradientColors(input: string, opts: KeyValue): {
    color_mode: string;
    colors: string[];
    segments: number;
    offset: number;
    brightness: number;
    on: boolean;
    x?: undefined;
    y?: undefined;
    name?: undefined;
    color_temp?: undefined;
} | {
    colors?: undefined;
    segments?: undefined;
    offset?: undefined;
    color_mode: string;
    x: number;
    y: number;
    brightness: number;
    on: boolean;
    name?: undefined;
    color_temp?: undefined;
} | {
    colors?: undefined;
    segments?: undefined;
    offset?: undefined;
    color_mode: string;
    x: number;
    y: number;
    brightness: number;
    on: boolean;
    name: any;
    color_temp?: undefined;
} | {
    colors?: undefined;
    segments?: undefined;
    offset?: undefined;
    x?: undefined;
    y?: undefined;
    name?: undefined;
    color_mode: string;
    color_temp: number;
    brightness: number;
    on: boolean;
} | {
    colors?: undefined;
    segments?: undefined;
    offset?: undefined;
    x?: undefined;
    y?: undefined;
    name?: undefined;
    color_mode?: undefined;
    color_temp?: undefined;
    brightness: number;
    on: boolean;
} | {
    brightness?: undefined;
    colors?: undefined;
    segments?: undefined;
    offset?: undefined;
    x?: undefined;
    y?: undefined;
    name?: undefined;
    color_mode?: undefined;
    color_temp?: undefined;
    on?: undefined;
};
export declare function encodeGradientColors(value: string[], opts: KeyValueAny): string;
//# sourceMappingURL=philips.d.ts.map