import type { ConfigKey } from '../config/schema.js'; import type { ArtifactAttachment, ArtifactCreateInput, ArtifactDescriptor, ArtifactRecord, ArtifactReference, ArtifactStreamCreateInput } from './types.js'; export interface ArtifactStoreConfig { readonly rootDir?: string | undefined; readonly configManager?: { getControlPlaneConfigDir?: (() => string) | undefined; get?: ((key: ConfigKey) => unknown) | undefined; }; readonly maxBytes?: number | undefined; readonly defaultRetentionMs?: number | undefined; readonly maxRetentionMs?: number | undefined; readonly trustedHosts?: readonly string[] | undefined; readonly blockedHosts?: readonly string[] | undefined; readonly allowPrivateHostFetches?: boolean | undefined; } export declare class ArtifactStore { private readonly rootDir; private readonly records; private readonly maxBytes; private readonly defaultRetentionMs; private readonly maxRetentionMs; private readonly trustedHosts; private readonly blockedHosts; private readonly allowPrivateHostFetches; constructor(config: ArtifactStoreConfig); get storagePath(): string; getMaxBytes(): number; list(limit?: number): ArtifactDescriptor[]; get(id: string): ArtifactDescriptor | null; getRecord(id: string): ArtifactRecord | null; delete(id: string): boolean; deleteMany(ids: Iterable): number; readContent(id: string): Promise<{ record: ArtifactRecord; buffer: Buffer; }>; create(input: ArtifactCreateInput): Promise; createFromStream(input: ArtifactStreamCreateInput): Promise; private writeResolvedArtifact; private writeStreamContent; toAttachment(reference: ArtifactReference, options?: { readonly contentUrl?: string | undefined; readonly includeBase64IfSmallerThan?: number | undefined; }): Promise; private toDescriptor; private loadExisting; private pruneExpired; private removeRecordFiles; private resolveInput; private resolveRemoteInput; private filenameFromContentDisposition; private assertRemoteHostAllowed; } //# sourceMappingURL=store.d.ts.map