import { Simulation } from './simulation';
import { Queue } from './queue';
import { Entity } from './entity';
import { IPoint } from './util';
export interface IAnimatedQueue {
    queue: Queue;
    element: string | Element;
    endElement?: string | Element;
    angle?: number;
    stackEntities?: boolean;
    max?: number;
}
export declare class Animation {
    private _sim;
    private _host;
    private _scene;
    private _width;
    private _height;
    private _queues;
    private _queueArray;
    private _disabled;
    private _rotateEntities;
    private _toQueueEnd;
    private _getEntityHtml;
    private _updateEntityElement;
    _entities: Map<Entity<Simulation>, AnimatedEntity>;
    _lastUpdate: number;
    constructor(sim: Simulation, animationHost: any, options?: any);
    get hostElement(): Element;
    get hostTag(): string;
    get isThreeD(): boolean;
    get sceneElement(): Element;
    get getEntityHtml(): Function;
    set getEntityHtml(value: Function);
    get updateEntityElement(): Function;
    set updateEntityElement(value: Function);
    get rotateEntities(): boolean;
    set rotateEntities(value: boolean);
    get animateToQueueEnd(): boolean;
    set animateToQueueEnd(value: boolean);
    get disabled(): boolean;
    set disabled(value: boolean);
    get queues(): IAnimatedQueue[];
    set queues(value: IAnimatedQueue[]);
    updateDisplay(): void;
    _getAnimatedEntity(e: Entity): AnimatedEntity;
}
declare class AnimatedEntity {
    private _anim;
    private _entity;
    private _html;
    _element: Element;
    _sz: IPoint;
    _offset: IPoint;
    _inUse: boolean;
    constructor(anim: Animation, entity: Entity);
    _getEntityHtml(): any;
    updateIcon(creating?: boolean): void;
    _drawAt(pt: IPoint, angle?: number): void;
}
export {};
