import { type IBaseObjectsManager, type IBaseObjectsManagerOptions } from "../../common/baseObject/IBaseObjectsManager";
import { type RageBaseObject } from "./RageBaseObject";
import { RageBaseObjectsIterator } from "./RageBaseObjectsIterator";
export interface IRageBaseObjectsManagerOptions extends IBaseObjectsManagerOptions {
}
export declare abstract class RageBaseObjectsManager<T extends RageBaseObject<EntityMp>> implements IBaseObjectsManager<RageBaseObject<EntityMp>> {
    private readonly _baseObjects;
    private readonly _baseObjectsType;
    protected readonly _iterator: RageBaseObjectsIterator<T>;
    protected get baseObjects(): ReadonlyMap<number, T>;
    get iterator(): RageBaseObjectsIterator<T>;
    protected constructor(options: IRageBaseObjectsManagerOptions);
    getByID(id: number): T;
    findByID(id: number): T | null;
    protected registerBaseObject(baseObject: T): void;
    protected unregisterBaseObject(baseObject: T): void;
}
