import { DeviceCommandRGB, LEDStateRGB, DeviceBundle, ledStateHSV, DeviceCommandHSV } from 'magichome-core';
import { FullDeviceInformation, DeviceAPI, IAnimationColorStep } from '../models/types';
export declare class BaseController {
    protected deviceBundle: DeviceBundle;
    protected _ledStateRGB: LEDStateRGB | null;
    get ledStateRGB(): LEDStateRGB;
    protected set ledStateRGB(ledStateRGB: LEDStateRGB);
    lastKnownHue: number;
    get ledStateHSV(): ledStateHSV;
    protected get command(): {
        get: (partial: Partial<DeviceCommandRGB>) => DeviceCommandRGB;
    };
    protected deviceAPI: DeviceAPI;
    protected lastOutboundCommand: DeviceCommandRGB | null;
    get fullDeviceInformation(): FullDeviceInformation;
    private _deviceManager;
    private get deviceManager();
    private set deviceManager(value);
    manuallyControlled: boolean;
    id: string | null;
    protected animationList: string[];
    constructor(deviceBundle: DeviceBundle);
    setOn(value: boolean, maxRetries?: number): Promise<import("magichome-core").CompleteResponse>;
    setLEDRGB(deviceCommandRGB: DeviceCommandRGB, maxRetries?: number, colorAssist?: boolean): Promise<void>;
    setLEDHSV(deviceCommandHSV: DeviceCommandHSV, maxRetries?: number, colorAssist?: boolean): Promise<void>;
    private hsvCommandToRGB;
    private sendCommandRGB;
    private generateCommandOptions;
    fetchDeviceStateRGB(): Promise<LEDStateRGB>;
    fetchDeviceStateHSV(): Promise<ledStateHSV>;
    getAnimationList(): string[];
    hasAnimation(animationName: string): boolean;
    appendAnimationList(animationName: string | string[]): void;
    removeAnimationFromList(animationName: string | string[]): void;
    setLEDColorAnimation(color: IAnimationColorStep): void;
}
//# sourceMappingURL=baseController.d.ts.map