import type { ObjectId } from "./object-types.js"; export interface TimedObject { properties?: Record; [key: string]: unknown; } export interface ObjectTimeConfig { value?: (object: TimedObject) => number | null; from?: (object: TimedObject) => number | null; to?: (object: TimedObject) => number | null; } /** * Temporal filter index. * Records sorted by `from`; active range uses lower-bound binary search then a * short scan until `from` exceeds the filter upper bound. */ export declare class ObjectTimeIndex { #private; private readonly config; private records; private byId; private indexById; private sorted; private fromFilter; private toFilter; private cachedActive; private cacheValid; constructor(config: ObjectTimeConfig); get active(): boolean; get range(): { from: number | null; to: number | null; }; clear(): void; setRange(from: number | null, to: number | null): void; remove(id: ObjectId): void; upsert(id: ObjectId, object: TimedObject): void; /** Returns ids visible for the current time range. If inactive, returns null (= all). */ queryActiveIds(): Set | null; isActive(id: ObjectId): boolean; } //# sourceMappingURL=object-time-index.d.ts.map