import type { GenerationArtifact } from './types.js';
export interface AssetEmission {
    assetId: string;
    artifact: GenerationArtifact;
}
export interface AssetWriteOperation<Source = string> {
    assetId: string;
    kind: 'write';
    source: Source;
}
export interface AssetDeleteOperation {
    assetId: string;
    kind: 'delete';
}
export type AssetEmissionOperation<Source = string> = AssetWriteOperation<Source> | AssetDeleteOperation;
export declare class AssetEmissionPlan<Source = string> {
    private readonly emissions;
    private readonly assetOperations;
    upsert(assetId: string, artifact: GenerationArtifact): void;
    get(assetId: string): GenerationArtifact | undefined;
    entries(): AssetEmission[];
    write(assetId: string, source: Source): void;
    remove(assetId: string): void;
    operations(): AssetEmissionOperation<Source>[];
    clear(): void;
}
