import type { TarballKey } from '../graph.js'; export type ArtifactRepresentation = 'compressed' | 'inflated' | 'tar-content' | 'repacked' | 'live'; export interface ArtifactResourceLimits { readonly maxCompressedBytes: number; readonly maxInflatedBytes: number; readonly maxTarContentBytes: number; readonly maxRepackedBytes: number; } export interface ArtifactResourcePolicy { readonly defaults?: Partial; readonly overrides?: Readonly>>; readonly maxLiveBytes?: number; } export type ArtifactLimitOrigin = 'default' | 'global' | 'artifact'; export interface EffectiveArtifactResourceLimits extends ArtifactResourceLimits { readonly maxLiveBytes: number; readonly origins: Readonly>; } export declare const DEFAULT_ARTIFACT_RESOURCE_LIMITS: Readonly; export declare const DEFAULT_ARTIFACT_MAX_LIVE_BYTES: number; export declare const DEFAULT_ARTIFACT_MAX_NETWORK_TRAFFIC_BYTES: number; export declare function artifactMaxLiveBytes(policy: ArtifactResourcePolicy | undefined): number; export declare class ArtifactLiveMeter { #private; readonly limitBytes: number; readonly origin: ArtifactLimitOrigin; constructor(policy: ArtifactResourcePolicy | undefined); acquire(bytes: number): () => void; get remainingBytes(): number; } export declare class ArtifactTrafficError extends Error { readonly actualBytes: number; readonly limitBytes: number; readonly origin: ArtifactLimitOrigin; constructor(actualBytes: number, limitBytes: number, origin: ArtifactLimitOrigin); } export declare class ArtifactTrafficMeter { #private; readonly limitBytes: number; readonly origin: ArtifactLimitOrigin; constructor(limitBytes?: number, origin?: ArtifactLimitOrigin); assertCanConsume(bytes: number): void; consume(bytes: number): void; } export declare function artifactResourceLimits(policy: ArtifactResourcePolicy | undefined, tarballKey: TarballKey): EffectiveArtifactResourceLimits; export declare class ArtifactEnvelopeError extends Error { readonly representation: ArtifactRepresentation; readonly actualBytes: number; readonly limitBytes: number; readonly origin: ArtifactLimitOrigin; constructor(representation: ArtifactRepresentation, actualBytes: number, limitBytes: number, origin: ArtifactLimitOrigin); } export declare function assertArtifactRepresentation(representation: ArtifactRepresentation, actualBytes: number, limits: EffectiveArtifactResourceLimits): void; export declare function inflateArtifact(bytes: Uint8Array, limits?: EffectiveArtifactResourceLimits): Buffer;