import { IDiGraph } from '@ktarmyshov/digraph-js';
import { type UnknownStringRecord } from '@ktarmyshov/typesafe-utilities';
import { DocumentSchemaAdapter } from '../adapter/schema';
import { Constraints } from './constraints.js';
import { Constraint, DocumentReference } from './types';
type _ConstraintVertex = DocumentReference<UnknownStringRecord>;
type _ConstraintEdge = Constraint<UnknownStringRecord, UnknownStringRecord>;
export declare class ConstraintsFactory {
    #private;
    get constraintsGraph(): IDiGraph<_ConstraintVertex, _ConstraintEdge>;
    addDocumentSchema(containerId: string, schema: DocumentSchemaAdapter): void;
    private findDocumentSchemaChunks;
    private validateDocumentReference;
    private findPropertySchemaChunksForProperty;
    private findDocumentSchemaChunksForProperty;
    private validateConstraint;
    private constructDocRefVertex;
    private constructAndFilterVertices;
    addConstraint<TReferencing extends UnknownStringRecord, TReferenced extends UnknownStringRecord>(referencing: DocumentReference<TReferencing>, constraint: Constraint<TReferencing, TReferenced>, referenced: DocumentReference<TReferenced>): void;
    addCompoundConstraint<TDoc extends UnknownStringRecord>(compound: DocumentReference<TDoc>, constraint: Constraint<TDoc, TDoc>): void;
    validate(): void;
    build(): Constraints;
}
export {};
