import { type IBaseObjectsManager, type IBaseObjectsManagerOptions } from "../../common/baseObject/IBaseObjectsManager";
import { type CCMPBaseObject } from "./CCMPBaseObject";
import { CCMPBaseObjectsIterator } from "./CCMPBaseObjectsIterator";
import { type BaseObjectType } from "../../../../shared";
export interface ICCMPBaseObjectsManagerOptions extends IBaseObjectsManagerOptions {
}
export declare abstract class CCMPBaseObjectsManager<T extends CCMPBaseObject> implements IBaseObjectsManager<T> {
    private readonly _baseObjects;
    private readonly _baseObjectsType;
    protected readonly _iterator: CCMPBaseObjectsIterator<T>;
    protected get baseObjects(): ReadonlyMap<number, T>;
    protected get baseObjectsType(): `${BaseObjectType}`;
    get iterator(): CCMPBaseObjectsIterator<T>;
    protected constructor(options: ICCMPBaseObjectsManagerOptions);
    getByID(id: number): T;
    findByID(id: number): T | null;
    protected registerBaseObject(baseObject: T): void;
    protected unregisterBaseObject(baseObject: T): void;
}
