export type PlanSizeRootKind = "compiled" | "plan";
export interface PlanSizeComponent {
    /** Fixed category or a one-way hash for a video-frame directory; never a source path. */
    label: string;
    sizeBytes: number;
    fileCount: number;
}
export interface PlanSizeBreakdown {
    totalBytes: number;
    fileCount: number;
    compiledBytes: number;
    /** Attribution within compiledBytes, not an additional mutually-exclusive bucket. */
    sourceMediaBytes: number;
    videoFramesBytes: number;
    videoFrameFileCount: number;
    audioBytes: number;
    metadataBytes: number;
    otherBytes: number;
    /** Largest fixed/hash-only buckets, deterministically ordered and bounded. */
    topComponents: PlanSizeComponent[];
}
/**
 * Measure a staged compiled tree or finalized plan tree without following
 * symlinks. Component labels are fixed or hashed, so callers can safely put
 * the bounded result in logs/errors without exposing authored paths.
 */
export declare function measurePlanSizeBreakdown(rootDir: string, rootKind?: PlanSizeRootKind): PlanSizeBreakdown;
//# sourceMappingURL=planSize.d.ts.map