import { AnimationStepKey, BaseController, IAnimationBlueprint, IAnimationColorStep, IAnimationSequenceRange } from "..";
export declare class AnimationLoop {
    readonly name: string;
    readonly priority: number;
    readonly syncSequenceTimings: boolean;
    readonly syncSequenceColor: boolean;
    private lightOffsetDurationMS;
    readonly blueprintAnimationSequences: IAnimationSequenceRange[];
    readonly isSingularAnimationLoop: boolean;
    private currentAnimationOffsetDurationMS;
    private activeLoops;
    private STEP_INTERVAL_MS;
    associatedLightCount: number;
    isActive: boolean;
    constructor(animationBlueprint: IAnimationBlueprint, lightIDs: Array<BaseController['id']>, STEP_INTERVAL_MS: number);
    private initialize;
    getAnimationStep(lightID: BaseController['id']): IAnimationColorStep;
    private calculateOffsetIndex;
    addLightToAnimationLoop(lightID: BaseController['id'] | AnimationStepKey): void;
    removeLightFromAnimationLoop(lightID: BaseController['id']): void;
    tickAllActiveLoops(): void;
    private tickAnimation;
    private generateAnimationSteps;
    private initializeAnimationID;
}
//# sourceMappingURL=animationLoop.d.ts.map