import { type ByteSize } from '../api/operation.js'; import type { Diagnostic } from '../graph.js'; export declare const DEFAULT_ARTIFACT_STORE_MAX_BYTES: number; export interface ArtifactStoreOptions { readonly path?: string; readonly maxBytes?: number; } export interface ArtifactStoreSource { readonly kind: 'lockgraph-artifact-store'; readonly path: string; readonly maxBytes: number; } declare const lockgraphStoreBrand: unique symbol; export interface Store { readonly [lockgraphStoreBrand]: true; } export interface ArtifactPersistenceOptions { readonly store?: Store | false; } export type ArtifactStoreAlias = Readonly<{ namespace: 'tarball'; algorithm: 'sha1' | 'sha256' | 'sha384' | 'sha512'; digest: string; }> | Readonly<{ namespace: 'berry-zip'; algorithm: 'sha512'; digest: string; cacheKey: string; }>; export interface ArtifactStoreEvidence { readonly aliases: readonly ArtifactStoreAlias[]; } export interface ArtifactStoreHit { readonly bytes: Uint8Array; readonly canonical: string; readonly viaAlias: boolean; accept(): Promise; rejectAlias(): Promise; release(): Promise; } export interface ArtifactStoreReadLimit { readonly exceededBytes: number; } export type ArtifactStoreDiagnostic = (diagnostic: Diagnostic) => void; export declare function artifactStore(options?: ArtifactStoreOptions): ArtifactStoreSource; export declare function lockgraphStore(path?: string, options?: Readonly<{ maxBytes?: ByteSize; }>): Store; export declare function validateArtifactStoreSource(value: unknown): ArtifactStoreSource; export declare function operationArtifactStore(value: Store | false | undefined): ArtifactStoreSource | undefined; export declare function readArtifactStore(source: ArtifactStoreSource, evidence: ArtifactStoreEvidence, subject: string, onDiagnostic: ArtifactStoreDiagnostic, maxCompressedBytes?: number): Promise; export declare function writeArtifactStore(source: ArtifactStoreSource, evidence: ArtifactStoreEvidence, bytes: Uint8Array, subject: string, onDiagnostic: ArtifactStoreDiagnostic): Promise; export {};