import { ResourceStylingObjectCreate, StandardObjectCreate } from "./sceneObjectCreate.js"; import { SchemaKind, SchemaVersion } from "./types/sceneObjectSchemas.js"; import { ResourceStylingSchemas, StandardSchemas } from "./types/schemaCategories.js"; /** * Server response metadata added to all scene objects */ interface SceneObjectResponseMetadata { /** Unique identifier for the scene object (UUID). */ id: string; /** Id of the scene containing the object (UUID). */ sceneId: string; /** Id of the user who created the scene object (UUID). */ createdById: string; /** Time the scene object was created as an ISO8601 string, 'YYYY-MM-DDTHH:mm:ss.sssZ'. */ creationTime: string; /** Time the scene object was last modified as an ISO8601 string, 'YYYY-MM-DDTHH:mm:ss.sssZ'. */ lastModified: string; } /** * Scene object that applies styling to a specific resource (ex: iModelVisibility, ExpressionStyling) * RelatedId indicates which scene object is being styled. */ export interface ResourceStylingObject = SchemaVersion> extends Omit, "id">, SceneObjectResponseMetadata { } /** * Standard scene object (ex: Layer, RepositoryResource, View3d, UnrealAtmosphericStyling) */ export interface StandardObject = SchemaVersion> extends Omit, "id">, SceneObjectResponseMetadata { } /** * Type representing all possible scene object responses. * Automatically resolves to the appropriate interface based on schema kind */ export type SceneObject = SchemaVersion> = K extends ResourceStylingSchemas ? ResourceStylingObject : K extends StandardSchemas ? StandardObject : never; export declare function isSceneObject(v: unknown): v is SceneObject; export {};