import type { SpooledArtifactConstructor } from "../../../common"; import type { ArtifactMinter } from "../contracts/artifact_minter"; /** A format declaration accepted by the default minter. */ export type ArtifactFormat = { /** Stable identifier for the format. */ id: string; /** MIME types handled by the format. */ mime: string[]; /** Filename extensions handled by the format. */ extensions: string[]; /** Lazy constructor loader; it is called only after the format is selected. */ ctor: () => Promise; }; /** A pure minter with optional, lazily loaded consumer formats. */ export declare class DefaultArtifactMinter implements ArtifactMinter { #private; constructor(formats?: readonly ArtifactFormat[]); /** Return format metadata without invoking any constructor thunk. */ formats(): Promise; /** Resolve the constructor for a MIME type; unknown types use the base artifact. */ constructorForMime(mime: string | undefined): Promise; /** Resolve the constructor from a MIME type, then an extension, without validating content. */ constructorForPath(path: string, mime?: string): Promise; } /** The shared default registry. Its format thunks remain lazy until selected. */ export declare const defaultArtifactMinter: DefaultArtifactMinter; /** Select the default artifact constructor for a path. */ export declare const artifactConstructorForPath: (path: string, mime?: string) => Promise; /** Select a constructor from a caller-provided minter, never throwing on bad metadata. */ export declare const constructorFromMinter: (minter: ArtifactMinter, mime: string | undefined) => Promise;