import { type CCMPEventsManager } from "../../../net/ccmp/events/CCMPEventsManager";
import { type IObjectCreateOptions, type IObjectsManager } from "../../common/object/IObjectsManager";
import { type IWorldObjectsIterator } from "../../common/worldObject/IWorldObjectsIterator";
import { CCMPObject } from "./CCMPObject";
export declare class CCMPObjectsManager implements IObjectsManager {
    private readonly _events;
    private readonly _objects;
    private readonly _objectsByRemoteId;
    private readonly _iterator;
    constructor(_events: CCMPEventsManager);
    create(options: IObjectCreateOptions): CCMPObject;
    syncWithMpPool(): void;
    registerById(id: number): CCMPObject;
    unregisterById(id: number): CCMPObject;
    findByID(id: number): CCMPObject | null;
    getByID(id: number): CCMPObject;
    findByRemoteID(remoteId: number): CCMPObject | null;
    getByRemoteID(remoteId: number): CCMPObject;
    deleteById(id: number): CCMPObject;
    get iterator(): IWorldObjectsIterator<CCMPObject>;
    private _register;
    private _unregister;
    private _findRegistered;
    private _registerLifecycleEvents;
    private _filter;
    private _pruneDestroyed;
}
