/**
 * Ontology Registry — Manages loaded ontology schemas.
 *
 * Provides registration, lookup, inheritance resolution, and
 * entity-type-to-schema mapping.
 *
 * @module trellis/core/ontology
 */
import type { OntologySchema, EntityDef, RelationDef, AttributeDef } from './types.js';
export declare class OntologyRegistry {
    private schemas;
    /** Resolved entity defs (with inherited attributes merged). */
    private resolvedEntities;
    /** Resolved relation defs. */
    private resolvedRelations;
    /**
     * Register an ontology schema.
     * Throws if an ontology with the same ID is already registered at the same version.
     */
    register(schema: OntologySchema): void;
    /**
     * Unregister an ontology by ID.
     */
    unregister(id: string): void;
    /**
     * Get a registered ontology schema by ID.
     */
    get(id: string): OntologySchema | undefined;
    /**
     * List all registered ontology schemas.
     */
    list(): OntologySchema[];
    /**
     * Get the resolved entity definition for an entity type name.
     * Returns the entity def with inherited attributes merged in.
     */
    getEntityDef(typeName: string): EntityDef | undefined;
    /**
     * Get the ontology ID that defines a given entity type.
     */
    getEntityOntology(typeName: string): string | undefined;
    /**
     * List all known entity type names.
     */
    listEntityTypes(): string[];
    /**
     * Get all relation definitions involving a given entity type
     * (either as source or target).
     */
    getRelationsForType(typeName: string): RelationDef[];
    /**
     * Get a specific relation definition by name.
     */
    getRelationDef(name: string): RelationDef | undefined;
    /**
     * List all known relation names.
     */
    listRelationNames(): string[];
    /**
     * Check if an entity type is known to any registered ontology.
     */
    hasEntityType(typeName: string): boolean;
    /**
     * Get the required attributes for an entity type.
     */
    getRequiredAttributes(typeName: string): AttributeDef[];
    private _resolve;
    private _resolveEntity;
}
//# sourceMappingURL=registry.d.ts.map