import { IXRTrackablePlatformFeature } from "@galacean/engine-design"; import { XRTrackingState } from "../../input/XRTrackingState"; import { XRFeature } from "../XRFeature"; import { XRRequestTracking } from "./XRRequestTracking"; import { XRTracked } from "./XRTracked"; /** * The base class of XR trackable manager. */ export declare abstract class XRTrackableFeature = XRRequestTracking> extends XRFeature> { protected static _uuid: number; protected _requestTrackings: K[]; protected _tracked: T[]; protected _added: T[]; protected _updated: T[]; protected _removed: T[]; protected _statusSnapshot: Record; private _listeners; /** * Add a listening function for tracked object changes. * @param listener - The listening function */ addChangedListener(listener: (added: readonly T[], updated: readonly T[], removed: readonly T[]) => void): void; /** * Remove a listening function of tracked object changes. * @param listener - The listening function */ removeChangedListener(listener: (added: readonly T[], updated: readonly T[], removed: readonly T[]) => void): void; _onUpdate(): void; _onSessionStop(): void; _onSessionExit(): void; protected _addRequestTracking(requestTracking: K): void; protected _removeRequestTracking(requestTracking: K): void; protected _removeAllRequestTrackings(): void; protected abstract _generateTracked(): T; }