import type { OutputAsset, OutputChunk } from 'rollup';
export interface ViteSourceOutputRemovalConsumer {
    consume: (currentBundleFiles: Iterable<string>) => string[];
}
export interface ViteSourceOutputRelationOwner {
    createRemovalConsumer: () => ViteSourceOutputRemovalConsumer;
    dispose: () => void;
    getStats: () => {
        consumers: number;
        dirtySources: number;
        outputs: number;
        pendingOutputs: number;
        sources: number;
    };
    getOutputSources: (outputFile: string) => Set<string>;
    getOwnedOutputs: (sourceFile: string) => Set<string>;
    observeSource: (sourceFile: string) => void;
    recordBundle: (bundle: Record<string, OutputAsset | OutputChunk>) => void;
    recordOwnedOutput: (sourceFile: string, outputFile: string) => void;
    removeSource: (sourceFile: string) => Set<string>;
}
export declare function createViteSourceOutputRelationOwner(): ViteSourceOutputRelationOwner;
export declare function getActiveViteSourceOutputRelationOwner(): ViteSourceOutputRelationOwner | undefined;
export declare function withViteSourceOutputRelationOwner<T>(owner: ViteSourceOutputRelationOwner, run: () => T): T;
