import { Optional } from '../../../../common';
import { GoveeAPIResponse } from '../../govee-api.models';
export declare class SpeedInfo {
    index: number;
    supportsSpeed: boolean;
    config: unknown;
}
export declare class LightEffectSpecialEffect {
    parameterId: number;
    opCodeBase64?: string;
    opCode(code: number): Optional<number[][] | undefined>;
    cmdVersion: number;
    supportedModels?: string[];
    speedInfo?: SpeedInfo;
}
export declare class EffectSceneRule {
    maxSoftwareVersion?: string;
    minSoftwareVersion?: string;
    maxHardwareVersion?: string;
    minHardwareVersion?: string;
    maxWiFiSoftwareVersion?: string;
    minWiFiSoftwareVersion?: string;
    maxWiFiHardwareVersion?: string;
    minWiFiHardwareVersion?: string;
}
export declare class LightEffect {
    parameterId: number;
    name: string;
    opCodeBase64: string;
    get opCode(): Optional<number[][] | undefined>;
    code: number;
    specialEffect?: LightEffectSpecialEffect[];
    cmdVersion: number;
    sceneType: number;
    diyOpCode?: unknown[];
    diyOpCodeBase64?: string;
    get diyEffect(): Optional<number[][]>;
    rules?: unknown[];
    speedInfo?: SpeedInfo;
}
export declare class EffectScene {
    id: number;
    urls?: string[];
    name: string;
    type: number;
    code: number;
    categoryId: number;
    rule?: EffectSceneRule;
    lightEffects: LightEffect[];
    voiceUrl?: string;
    createTimestamp: number;
}
export declare class EffectCategory {
    id: number;
    name: string;
    scenes: EffectScene[];
}
export declare class EffectData {
    supportSpeed?: boolean;
    categories: EffectCategory[];
}
export declare class EffectListResponse extends GoveeAPIResponse {
    effectData: EffectData;
}
//# sourceMappingURL=effect-list.response.d.ts.map