import type { TMixinTarget } from '@venizia/ignis-helpers/common'; import type { MetadataRegistry as _MetadataRegistry } from '@venizia/ignis-inversion'; import type { IArtifactMetadata, IProvideMetadata } from '../common/types'; export declare const ArtifactMetadataMixin: >(baseClass: BaseClass) => { new (...args: any[]): { /** Every class a stereotype decorated, in decoration order - which is import order, and is identical in a bundle. Discovery reads this; registration order still comes from `order` and the configuration sort. */ discoveredArtifacts: object[]; addDiscoveredArtifact(opts: { target: Target; }): void; getDiscoveredArtifacts(): ReadonlyArray; /** Tests only: the list is process-wide and a suite that decorates classes would leak into the next one. */ clearDiscoveredArtifacts(): void; setArtifactMetadata(opts: { target: Target; metadata: IArtifactMetadata; }): void; getArtifactMetadata(opts: { target: Target; }): IArtifactMetadata | undefined; addProvideMetadata(opts: { target: Target; metadata: IProvideMetadata; }): void; getProvideMetadata(opts: { target: Target; }): 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_1 | 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; }; } & BaseClass; //# sourceMappingURL=artifact.mixin.d.ts.map