import type { AnyType, TClass } from '@venizia/ignis-helpers/common'; import { MetadataRegistry as _MetadataRegistry } from '@venizia/ignis-inversion'; import type { IModelRegistryEntry, IRepositoryBinding } from './common/types/index.js'; declare const BaseRegistry: { new (...args: any[]): { discoveredArtifacts: object[]; addDiscoveredArtifact(opts: { target: Target; }): void; getDiscoveredArtifacts(): ReadonlyArray; clearDiscoveredArtifacts(): void; setArtifactMetadata(opts: { target: Target; metadata: import("./common/index.js").IArtifactMetadata; }): void; getArtifactMetadata(opts: { target: Target; }): import("./common/index.js").IArtifactMetadata | undefined; addProvideMetadata(opts: { target: Target; metadata: import("./common/index.js").IProvideMetadata; }): void; getProvideMetadata(opts: { target: Target; }): import("./common/index.js").IProvideMetadata[]; define: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; value: Value; }) => void; get: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => Value | undefined; has: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; delete: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; getKeys: (opts: { target: Target; }) => import("@venizia/ignis-inversion").TBindingKey[]; getMethodNames: (opts: { target: import("@venizia/ignis-inversion").TClass; }) => string[]; clearMetadata: (opts: { target: T; }) => void; setPropertyMetadata: (opts: { target: T; propertyName: string | symbol; metadata: import("@venizia/ignis-inversion").IPropertyMetadata; }) => void; getPropertiesMetadata: (opts: { target: T; }) => Map | undefined; getPropertyMetadata: (opts: { target: T; propertyName: string | symbol; }) => import("@venizia/ignis-inversion").IPropertyMetadata | undefined; setInjectMetadata: (opts: { target: T; index: number; metadata: import("@venizia/ignis-inversion").IInjectMetadata; }) => void; getInjectMetadata: (opts: { target: T; }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined; setBindingKey: (opts: { target: T; key: import("@venizia/ignis-inversion").TBindingKey; isProvisional?: boolean; }) => void; getBindingKey: (opts: { target: T; }) => import("@venizia/ignis-inversion").TBindingKey | undefined; scope: string; identifier: string; }; } & { new (...args: any[]): { addRpc(opts: { target: Target; methodName: string | symbol; configs: import("./common/index.js").IRpcMetadata; }): void; getRpcs(opts: { target: Target; }): Map | undefined; getRpc(opts: { target: Target; methodName: string | symbol; }): import("./common/index.js").IRpcMetadata | undefined; hasRpcs(opts: { target: Target; }): boolean; define: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; value: Value; }) => void; get: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => Value | undefined; has: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; delete: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; getKeys: (opts: { target: Target; }) => import("@venizia/ignis-inversion").TBindingKey[]; getMethodNames: (opts: { target: import("@venizia/ignis-inversion").TClass; }) => string[]; clearMetadata: (opts: { target: T; }) => void; setPropertyMetadata: (opts: { target: T; propertyName: string | symbol; metadata: import("@venizia/ignis-inversion").IPropertyMetadata; }) => void; getPropertiesMetadata: (opts: { target: T; }) => Map | undefined; getPropertyMetadata: (opts: { target: T; propertyName: string | symbol; }) => import("@venizia/ignis-inversion").IPropertyMetadata | undefined; setInjectMetadata: (opts: { target: T; index: number; metadata: import("@venizia/ignis-inversion").IInjectMetadata; }) => void; getInjectMetadata: (opts: { target: T; }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined; setBindingKey: (opts: { target: T; key: import("@venizia/ignis-inversion").TBindingKey; isProvisional?: boolean; }) => void; getBindingKey: (opts: { target: T; }) => import("@venizia/ignis-inversion").TBindingKey | undefined; scope: string; identifier: string; }; } & { new (...args: any[]): { getRoutes(opts: { target: Target; }): Map | undefined; getRoute(opts: { target: Target; methodName: string | symbol; }): import("../../index.js").IAuthRouteConfig | undefined; hasRoutes(opts: { target: Target; }): boolean; addRoute(opts: { target: Target; methodName: string | symbol; configs: import("../../index.js").IAuthRouteConfig; }): void; define: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; value: Value; }) => void; get: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => Value | undefined; has: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; delete: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; getKeys: (opts: { target: Target; }) => import("@venizia/ignis-inversion").TBindingKey[]; getMethodNames: (opts: { target: import("@venizia/ignis-inversion").TClass; }) => string[]; clearMetadata: (opts: { target: T; }) => void; setPropertyMetadata: (opts: { target: T; propertyName: string | symbol; metadata: import("@venizia/ignis-inversion").IPropertyMetadata; }) => void; getPropertiesMetadata: (opts: { target: T; }) => Map | undefined; getPropertyMetadata: (opts: { target: T; propertyName: string | symbol; }) => import("@venizia/ignis-inversion").IPropertyMetadata | undefined; setInjectMetadata: (opts: { target: T; index: number; metadata: import("@venizia/ignis-inversion").IInjectMetadata; }) => void; getInjectMetadata: (opts: { target: T; }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined; setBindingKey: (opts: { target: T; key: import("@venizia/ignis-inversion").TBindingKey; isProvisional?: boolean; }) => void; getBindingKey: (opts: { target: T; }) => import("@venizia/ignis-inversion").TBindingKey | undefined; scope: string; identifier: string; }; } & { new (...args: any[]): { setControllerMetadata(opts: { target: Target; metadata: import("./common/index.js").TControllerMetadata; }): void; getControllerMetadata(opts: { target: Target; }): import("./common/index.js").TControllerMetadata | undefined; getRestControllerMetadata(opts: { target: Target; }): import("./common/index.js").IRestControllerMetadata | undefined; getGrpcControllerMetadata(opts: { target: Target; }): import("./common/index.js").IGrpcControllerMetadata | undefined; define: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; value: Value; }) => void; get: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => Value | undefined; has: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; delete: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; getKeys: (opts: { target: Target; }) => import("@venizia/ignis-inversion").TBindingKey[]; getMethodNames: (opts: { target: import("@venizia/ignis-inversion").TClass; }) => string[]; clearMetadata: (opts: { target: T; }) => void; setPropertyMetadata: (opts: { target: T; propertyName: string | symbol; metadata: import("@venizia/ignis-inversion").IPropertyMetadata; }) => void; getPropertiesMetadata: (opts: { target: T; }) => Map | undefined; getPropertyMetadata: (opts: { target: T; propertyName: string | symbol; }) => import("@venizia/ignis-inversion").IPropertyMetadata | undefined; setInjectMetadata: (opts: { target: T; index: number; metadata: import("@venizia/ignis-inversion").IInjectMetadata; }) => void; getInjectMetadata: (opts: { target: T; }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined; setBindingKey: (opts: { target: T; key: import("@venizia/ignis-inversion").TBindingKey; isProvisional?: boolean; }) => void; getBindingKey: (opts: { target: T; }) => import("@venizia/ignis-inversion").TBindingKey | undefined; scope: string; identifier: string; }; } & { new (...args: any[]): { repositoryBindings: Map>; repositoryBindingsByClass: Map>; datasourceModels: Map>>; setRepositoryMetadata, DataSource extends import("../../index.js").IDataSource = import("../../index.js").IDataSource<{}, import("../../index.js").TAnyDataSourceSchema, {}>>(opts: { target: Target; metadata: import("./common/index.js").TRepositoryMetadata & { _resolved?: import("./common/index.js").IResolvedRepositoryMetadata | undefined; }; }): void; getRepositoryMetadata(opts: { target: Target; }): (import("./common/index.js").TRepositoryMetadata & { _resolved?: import("./common/index.js").IResolvedRepositoryMetadata; }) | undefined; registerRepositoryBinding, DataSource extends import("../../index.js").IDataSource = import("../../index.js").IDataSource<{}, import("../../index.js").TAnyDataSourceSchema, {}>>(opts: IRepositoryBinding): void; getRepositoryBinding(opts: { target: Function; } | { name: string; }): IRepositoryBinding | undefined; getDataSourceModelClasses(opts: { dataSource: string | TClass; }): Set>; resolveModelRelations(modelMeta: IModelRegistryEntry): unknown; getModels(opts: { dataSource: string | TClass; }): { tableName: string; schema: unknown; relations?: unknown; }[]; getModelClasses(opts: { dataSource: string | TClass; }): Array>; resolveModelKey(opts: { modelClass: TClass; }): string; buildSchema(opts: { dataSource: string | TClass; }): { schema: Record; relations: Record; }; hasModels(opts: { dataSource: string | TClass; }): boolean; define: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; value: Value; }) => void; get: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => Value | undefined; has: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; delete: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; getKeys: (opts: { target: Target; }) => import("@venizia/ignis-inversion").TBindingKey[]; getMethodNames: (opts: { target: import("@venizia/ignis-inversion").TClass; }) => string[]; clearMetadata: (opts: { target: T; }) => void; setPropertyMetadata: (opts: { target: T; propertyName: string | symbol; metadata: import("@venizia/ignis-inversion").IPropertyMetadata; }) => void; getPropertiesMetadata: (opts: { target: T; }) => Map | undefined; getPropertyMetadata: (opts: { target: T; propertyName: string | symbol; }) => import("@venizia/ignis-inversion").IPropertyMetadata | undefined; setInjectMetadata: (opts: { target: T; index: number; metadata: import("@venizia/ignis-inversion").IInjectMetadata; }) => void; getInjectMetadata: (opts: { target: T; }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined; setBindingKey: (opts: { target: T; key: import("@venizia/ignis-inversion").TBindingKey; isProvisional?: boolean; }) => void; getBindingKey: (opts: { target: T; }) => import("@venizia/ignis-inversion").TBindingKey | undefined; scope: string; identifier: string; modelRegistry: Map; getModelMetadata: (opts: { target: object; }) => import("./common/index.js").IModelMetadata | undefined; }; } & { new (...args: any[]): { modelRegistry: Map; modelsBySchema: WeakMap; setModelMetadata(opts: { target: Target; metadata: import("./common/index.js").IModelMetadata; }): void; getModelMetadata(opts: { target: Target; }): import("./common/index.js").IModelMetadata | undefined; registerModel>(opts: { target: import("./common/index.js").TDecoratorModelTarget; metadata: import("./common/index.js").IModelMetadata; }): void; getModelEntry(opts: { name: string; }): IModelRegistryEntry | undefined; getModelEntryBySchema(opts: { schema: object; }): IModelRegistryEntry | undefined; getAllModels(): Map; getModelAuthorizeSettings(opts: { name: string; }): import("./common/index.js").IModelAuthorizeSettings | undefined; getAuthorizeModelPrincipals(opts: { format: "array"; }): string[]; getAuthorizeModelPrincipals(opts: { format: "record"; }): Record; getAuthorizeModelSettings(opts: { format: "array"; }): { name: string; authorize: import("./common/index.js").IModelAuthorizeSettings; entry: IModelRegistryEntry; }[]; getAuthorizeModelSettings(opts: { format: "record"; }): Record; define: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; value: Value; }) => void; get: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => Value | undefined; has: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; delete: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; getKeys: (opts: { target: Target; }) => import("@venizia/ignis-inversion").TBindingKey[]; getMethodNames: (opts: { target: import("@venizia/ignis-inversion").TClass; }) => string[]; clearMetadata: (opts: { target: T; }) => void; setPropertyMetadata: (opts: { target: T; propertyName: string | symbol; metadata: import("@venizia/ignis-inversion").IPropertyMetadata; }) => void; getPropertiesMetadata: (opts: { target: T; }) => Map | undefined; getPropertyMetadata: (opts: { target: T; propertyName: string | symbol; }) => import("@venizia/ignis-inversion").IPropertyMetadata | undefined; setInjectMetadata: (opts: { target: T; index: number; metadata: import("@venizia/ignis-inversion").IInjectMetadata; }) => void; getInjectMetadata: (opts: { target: T; }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined; setBindingKey: (opts: { target: T; key: import("@venizia/ignis-inversion").TBindingKey; isProvisional?: boolean; }) => void; getBindingKey: (opts: { target: T; }) => import("@venizia/ignis-inversion").TBindingKey | undefined; scope: string; identifier: string; }; } & { new (...args: any[]): { setDataSourceMetadata(opts: { target: Target; metadata?: import("./common/index.js").IDataSourceMetadata; }): void; getDataSourceMetadata(opts: { target: Target; }): import("./common/index.js").IDataSourceMetadata | undefined; define: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; value: Value; }) => void; get: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => Value | undefined; has: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; delete: (opts: { target: Target; key: import("@venizia/ignis-inversion").TBindingKey; }) => boolean; getKeys: (opts: { target: Target; }) => import("@venizia/ignis-inversion").TBindingKey[]; getMethodNames: (opts: { target: import("@venizia/ignis-inversion").TClass; }) => string[]; clearMetadata: (opts: { target: T; }) => void; setPropertyMetadata: (opts: { target: T; propertyName: string | symbol; metadata: import("@venizia/ignis-inversion").IPropertyMetadata; }) => void; getPropertiesMetadata: (opts: { target: T; }) => Map | undefined; getPropertyMetadata: (opts: { target: T; propertyName: string | symbol; }) => import("@venizia/ignis-inversion").IPropertyMetadata | undefined; setInjectMetadata: (opts: { target: T; index: number; metadata: import("@venizia/ignis-inversion").IInjectMetadata; }) => void; getInjectMetadata: (opts: { target: T; }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined; setBindingKey: (opts: { target: T; key: import("@venizia/ignis-inversion").TBindingKey; isProvisional?: boolean; }) => void; getBindingKey: (opts: { target: T; }) => import("@venizia/ignis-inversion").TBindingKey | undefined; scope: string; identifier: string; }; } & typeof _MetadataRegistry; /** Central metadata registry: decorator metadata, the model registry, repository bindings and auto-discovery. */ export declare class MetadataRegistry extends BaseRegistry { static readonly SINGLETON_REAL_KEY = "metadata-registry"; private constructor(); static getInstance(): MetadataRegistry; clearAll(): void; } export {}; //# sourceMappingURL=registry.d.ts.map