import type { IArtifactGroup, IArtifactIndex } from './common'; type TGroupResolver = (opts: { group: IArtifactGroup; }) => Promise; /** A typed slice of a shared package's artifacts - every decorated class under a directory named `folder` in the package that defined it. A package declares one per domain, once; an application borrows it in `configs.artifacts`. The content is filled by `@venizia/ignis-boot`: inlined when the application is built, or resolved from source when artifacts are registered. */ export declare class ArtifactGroup implements IArtifactGroup { /** A string brand, so the group protocol is structural: `@venizia/ignis-boot/auto` builds one without depending on the kernel. */ static readonly BRAND_KEY = "isArtifactGroup"; /** The realm slot `@venizia/ignis-boot` fills with the resolver for groups defined without content. */ static readonly SINGLETON_REALM_KEY = "artifact-group-resolver"; readonly isArtifactGroup: true; readonly resolve: (() => Promise) | undefined; readonly kinds: ReadonlyArray | undefined; private constructor(); readonly folder: string | undefined; readonly site: string | undefined; readonly content: IArtifactIndex | undefined; readonly ignore: ReadonlyArray | undefined; /** `content` is written by the build plugin; a hand-written group passes only `folder`. */ static define(opts: { folder: string; content?: IArtifactIndex; }): ArtifactGroup; /** Every decorated class of the calling package - an application's own artifacts, picked by its call site, so several applications in one process each get their own. `ignore` takes the globs `ignis-artifacts --ignore` takes, relative to the package `src`. `content` is written by the build plugin. */ static application(opts?: { ignore?: ReadonlyArray; content?: IArtifactIndex; }): ArtifactGroup; /** A group carrying only `kinds` - for a slicer that splits `configs.artifacts` by run mode. The source group is resolved when artifacts are registered, never here. */ static pick(opts: { group: IArtifactGroup; kinds: ReadonlyArray; }): ArtifactGroup; /** A group's classes: inlined by a build, else its own `resolve()`, else the resolver `@venizia/ignis-boot/auto` installs. */ static resolveContent(opts: { group: IArtifactGroup; }): Promise; /** Positional on purpose: a type predicate narrows its own parameter, and an options object would narrow the wrapper instead of `value`. */ static isGroup(value: unknown): value is IArtifactGroup; static setResolver(opts: { resolve: TGroupResolver | undefined; }): void; static getResolver(): TGroupResolver | undefined; /** The error a walker over `configs.artifacts` gets for reading a kind off a group - loud, never an empty list. */ static unreadKindError(opts: { folder: string | undefined; }): Error; get configurations(): never; get dataSources(): never; get components(): never; get repositories(): never; get services(): never; get controllers(): never; private static holder; /** The module that declared the group, read from the call stack. */ private static callSite; /** The first frame outside the kernel's own `artifact-group` file: POSIX and Windows paths, `file://` URLs (decoded, drive kept), parentheses inside a path. */ static siteFromStack(opts: { stack: string; }): string | undefined; } export {}; //# sourceMappingURL=artifact-group.d.ts.map