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