import * as Y from 'yjs';
import type { Entity, Relation } from './graph-model.js';
export declare const graphDoc: Y.Doc;
export declare const nodes: Y.Map<unknown>;
export declare const edges: Y.Map<unknown>;
export declare function initGraphDoc(): void;
export interface ProvenanceLogEntry {
    timestamp: number;
    action: 'add' | 'edit' | 'delete';
    objectType: 'node' | 'edge';
    id: string;
    data?: any;
    meta?: {
        userId?: string;
        clientId?: string;
        batchId?: string;
        parentOpId?: string;
        reason?: string;
        source?: 'api' | 'ui' | 'batch' | 'sync';
        confidence?: number;
        dataSource?: string;
        validationStatus?: 'valid' | 'pending' | 'invalid';
        schemaVersion?: string;
        previousStateHash?: string;
        namespace?: string;
        labels?: string[];
        custom?: Record<string, any>;
    };
}
export declare function addNode(entity: Entity, metadata?: Partial<ProvenanceLogEntry['meta']>): void;
export declare function editNode(entity: Entity, metadata?: Partial<ProvenanceLogEntry['meta']>): void;
export declare function deleteNode(id: string, metadata?: Partial<ProvenanceLogEntry['meta']>): void;
export declare function addEdge(relation: Relation, metadata?: Partial<ProvenanceLogEntry['meta']>): void;
export declare function editEdge(relation: Relation, metadata?: Partial<ProvenanceLogEntry['meta']>): void;
export declare function deleteEdge(edgeId: string, metadata?: Partial<ProvenanceLogEntry['meta']>): void;
export declare function getProvenanceLog(): ProvenanceLogEntry[];
export declare function clearProvenanceLog(): void;
//# sourceMappingURL=graph-crdt.d.ts.map