import { BindingKeys } from '../helpers/inversion'; import type { TConstValue } from '@venizia/ignis-helpers/common'; export type TBindingNamespace = TConstValue; /** Static binding namespaces for dependency injection. */ export declare class BindingNamespaces { private static readonly NAME_PATTERN; static readonly COMPONENT: string; static readonly DATASOURCE: string; static readonly REPOSITORY: string; static readonly MODEL: string; static readonly SERVICE: string; static readonly MIDDLEWARE: string; static readonly PROVIDER: string; static readonly CONTROLLER: string; static readonly CONFIGURATION: string; /** * A namespace is the leading segment of a binding key, and a binding is tagged with that segment * alone - a name carrying '.' or whitespace yields a key no boot step can drain by tag. */ static isValid(opts: { name: string; }): boolean; static createNamespace(opts: { name: string; }): string; /** A namespace-less key is untagged: no boot step drains it and `doVerify` never sees it. */ static assertArtifactNamespace(opts: { namespace: string; artifact: string; caller: string; }): string; } /** Artifact kind -> namespace. `registerArtifact` gets its namespace from the call site; `@injectable` has only the class. */ export declare class ArtifactNamespaces { private static readonly BY_TYPE; static resolve(opts: { type: string; }): TBindingNamespace; } /** Core binding keys for fundamental application components and configuration. */ export declare class CoreBindings extends BindingKeys { static readonly APPLICATION_INSTANCE = "@app/instance"; static readonly APPLICATION_SERVER = "@app/server"; static readonly APPLICATION_CONFIG = "@app/config"; static readonly APPLICATION_PROJECT_ROOT = "@app/project_root"; static readonly APPLICATION_ROOT_ROUTER = "@app/router/root"; static readonly APPLICATION_ENVIRONMENTS = "@app/environments"; static readonly APPLICATION_MIDDLEWARE_OPTIONS = "@app/middleware_options"; } //# sourceMappingURL=bindings.d.ts.map