/**
 * Semantic Model — public module surface.
 *
 * Barrel re-export for the `model/` module. Consumers outside `model/`
 * should import from this file rather than reaching into individual
 * registry files.
 *
 * The model is owner-scoped type/method/field knowledge layered above
 * `SymbolTable`. File-indexed and name-keyed callable lookups stay in
 * `SymbolTable` by design.
 */
// Unified semantic model (factory + interfaces). SemanticModel is the
// top-level container and owns the file/callable SymbolTable as a
// nested `symbols` field.
export { createSemanticModel, } from './semantic-model.js';
// SymbolTable is exclusively owned by SemanticModel. Re-exported here
// for the rare caller that needs the file/callable interface in
// isolation (e.g. tests).
export { createSymbolTable, CLASS_TYPES, CLASS_TYPES_TUPLE, FREE_CALLABLE_TYPES, FREE_CALLABLE_TUPLE, CALL_TARGET_TYPES, } from './symbol-table.js';
// `SymbolDefinition` moved to `@codragraph/shared` (RFC #909 Ring 1 #910).
// Consumers should import it directly from `@codragraph/shared`, not via this barrel.
// Type registry (classes, structs, interfaces, enums, records, impls)
export { createTypeRegistry, } from './type-registry.js';
// Method registry (owner-scoped methods with arity-aware overload lookup)
export { createMethodRegistry, } from './method-registry.js';
// Field registry (owner-scoped fields/properties)
export { createFieldRegistry, } from './field-registry.js';
// MRO-aware method resolution (C3, first-wins, leftmost-base, implements-split,
// qualified-syntax). Pure function that depends only on the model + HeritageMap.
// `MroStrategy` itself lives in `@codragraph/shared`; re-exported here for
// consumers that reach model behavior through the barrel.
export { lookupMethodByOwnerWithMRO } from './resolve.js';
// Named-import types and package-dir helper. Re-exported so barrel
// consumers don't need to reach into a specific model file.
export { isFileInPackageDir, } from './resolution-context.js';
// Behavior-grouped dispatch table for SymbolTable.add() routing.
// See registration-table.ts module JSDoc for the behavior group taxonomy
// and "how to add a new NodeLabel" checklist.
// NOTE: createRegistrationTable, RegistrationHook, and RegistrationTableDeps
// are deliberately NOT re-exported here — they are factory internals of
// SemanticModel and should only be imported directly from registration-table.js
// by semantic-model.ts and the registration-table.test.ts file.
export { CALLABLE_ONLY_LABELS, INERT_LABELS, DISPATCH_LABELS, ALL_NODE_LABELS, } from './registration-table.js';
