export type ArtifactKind = 'image' | 'video' | 'audio' | 'model' | 'text' | 'workflow' | 'collection'; export type ArtifactRelation = 'derived_from' | 'edited_from' | 'styled_from' | 'animated_from' | 'stitched_from' | 'extended_from' | 'segmented_from' | 'reference_for'; export type ArtifactVersionReason = 'initial' | 'retry' | 'refinement' | 'audit_repair' | 'user_redo'; export type ArtifactSource = { type: 'upload'; uploadId: string; } | { type: 'tool_result'; runId?: string; toolCallId: string; } | { type: 'workflow_stage'; workflowRunId: string; stageId: string; itemId?: string; }; export interface ArtifactEdge { parentId: string; relation: ArtifactRelation; } export interface ArtifactVersion { versionId: string; uri?: string; createdAt: string; reason: ArtifactVersionReason; jobId?: string; } export interface ArtifactNode { artifactId: string; kind: ArtifactKind; uri?: string; mimeType?: string; userLabel?: string; modelRefs: Record; source: ArtifactSource; parents: ArtifactEdge[]; versions: ArtifactVersion[]; metadata: Record; createdAt: string; } export interface ArtifactGraph { nodes: Map; selectedId?: string; imageNodeIds?: string[]; videoNodeIds?: string[]; audioNodeIds?: string[]; } export interface ArtifactGraphSerializable { nodes: ArtifactNode[]; selectedId?: string; imageNodeIds?: string[]; videoNodeIds?: string[]; audioNodeIds?: string[]; } export declare function isArtifactKind(value: unknown): value is ArtifactKind; export declare function isArtifactRelation(value: unknown): value is ArtifactRelation; export declare function isArtifactVersionReason(value: unknown): value is ArtifactVersionReason; export declare function isArtifactSource(value: unknown): value is ArtifactSource; export declare function isArtifactEdge(value: unknown): value is ArtifactEdge; export declare function isArtifactVersion(value: unknown): value is ArtifactVersion; export declare function isArtifactId(value: unknown): value is string; export declare function preferUlid(value: unknown): value is string; export declare function generateUlidArtifactId(now?: number): string; export declare function isArtifactNode(value: unknown): value is ArtifactNode; export declare function createArtifactNode(input: { kind: ArtifactKind; source: ArtifactSource; uri?: string; mimeType?: string; userLabel?: string; modelRefs?: Record; parents?: ArtifactEdge[]; metadata?: Record; now?: string; }): ArtifactNode; export declare function addVersion(node: ArtifactNode, version: Omit & { versionId?: string; }): ArtifactNode; export declare function addParent(node: ArtifactNode, edge: ArtifactEdge): ArtifactNode; export declare function serializeGraph(graph: ArtifactGraph): ArtifactGraphSerializable; export declare function deserializeGraph(data: ArtifactGraphSerializable): ArtifactGraph; export interface ArtifactValidationError { path: string; message: string; } export interface ArtifactValidationResult { valid: boolean; errors: ArtifactValidationError[]; } export declare function validateArtifactNode(value: unknown): ArtifactValidationResult; export declare function validateArtifactGraph(value: unknown): ArtifactValidationResult; //# sourceMappingURL=graph.d.ts.map