import { Entity } from './entity';
import { Tally } from './tally';
export declare class Queue {
    private _sim;
    private _name;
    private _capy;
    private _items;
    private _entities;
    private _tmLastChange;
    private _inUse;
    private _totalIn;
    private _grossPop;
    private _grossDwell;
    private _netPop;
    private _netDwell;
    constructor(name?: string, capacity?: number | null, options?: any);
    get name(): string;
    set name(value: string);
    get capacity(): number | null;
    set capacity(value: number | null);
    get unitsInUse(): number;
    get pop(): number;
    get totalIn(): number;
    get entities(): Entity[];
    get items(): Map<Entity, QueueItem>;
    get lastChange(): number;
    get grossPop(): Tally;
    get grossDwell(): Tally;
    get netPop(): Tally;
    get netDwell(): Tally;
    get utilization(): number;
    get totalCount(): number;
    get averageLength(): number;
    get maxLength(): number;
    get averageDwell(): number;
    get maxDwell(): number;
    canEnter(units?: number): boolean;
    add(e: Entity, units?: number): void;
    remove(e: Entity): void;
    reset(): void;
    _updateTallies(): void;
    protected _updatePopTallies(): void;
    protected _updateDwellTallies(timeIn: number): void;
}
declare class QueueItem {
    protected _e: Entity;
    protected _units: number;
    protected _timeIn: number;
    constructor(e: Entity, units: number, timeIn: number);
    get entity(): Entity;
    get units(): number;
    get timeIn(): number;
}
export {};
