import type { EntityId, EntityMetadata as RustEntityMetadata, LinkData, PropertyArrayMetadata, PropertyArrayWithMetadata, PropertyMetadata, PropertyObject, PropertyObjectMetadata, PropertyObjectWithMetadata, PropertyPath, PropertyValueMetadata, PropertyValueWithMetadata, PropertyWithMetadata, VersionedUrl } from "./type-system-rs/type-system.d.ts"; import type { DraftId, EntityUuid, WebId } from "./type-system-rs/types.d.ts"; export type TypeIdsAndPropertiesForEntity = { entityTypeIds: [VersionedUrl, ...VersionedUrl[]]; properties: PropertyObject; propertiesWithMetadata: PropertyObjectWithMetadata; }; /** * This redefinition allows for (1) a generic with default, (2) 'at least one' entityTypeId, * both of which the Rust->TS codegen does not support. */ export type EntityMetadata = Omit & { entityTypeIds: TypeIds; }; export interface Entity { metadata: EntityMetadata; entityId: EntityId; properties: TypeIdsAndProperties["properties"]; propertiesWithMetadata: TypeIdsAndProperties["propertiesWithMetadata"]; propertiesMetadata: PropertyObjectMetadata; propertyMetadata: (path: PropertyPath) => PropertyMetadata | undefined; flattenedPropertiesMetadata: () => { path: PropertyPath; metadata: PropertyMetadata["metadata"]; }[]; linkData: LinkData | undefined; } export interface LinkEntity extends Entity { linkData: LinkData; } export declare const ENTITY_ID_DELIMITER = "~"; export declare const isEntityId: (entityId: string) => entityId is EntityId; export declare const entityIdFromComponents: (webId: WebId, entityUuid: EntityUuid, draftId?: DraftId) => EntityId; export declare const splitEntityId: (entityId: EntityId) => [WebId, EntityUuid, DraftId?]; export declare const stripDraftIdFromEntityId: (entityId: EntityId) => import("./type-system-rs/type-system.d.ts").BrandedBase; export declare const extractWebIdFromEntityId: (entityId: EntityId) => WebId; export declare const extractEntityUuidFromEntityId: (entityId: EntityId) => EntityUuid; export declare const extractDraftIdFromEntityId: (entityId: EntityId) => DraftId | undefined; export declare const isValueMetadata: (metadata: PropertyMetadata) => metadata is PropertyValueMetadata; export declare const isArrayMetadata: (metadata: PropertyMetadata) => metadata is PropertyArrayMetadata; export declare const isObjectMetadata: (metadata: PropertyMetadata) => metadata is PropertyObjectMetadata; export declare const isValueWithMetadata: (metadata: PropertyWithMetadata) => metadata is PropertyValueWithMetadata; export declare const isArrayWithMetadata: (metadata: PropertyWithMetadata) => metadata is PropertyArrayWithMetadata; export declare const isObjectWithMetadata: (metadata: PropertyWithMetadata) => metadata is PropertyObjectWithMetadata;