export type BuildAssetKind = "narration" | "backdrop" | "video" | "music";
export interface CacheAssetDescriptor {
    key: string;
    path: string;
    ext: string;
}
export declare function cacheAssetDescriptor(kind: BuildAssetKind, parts: Record<string, unknown>): CacheAssetDescriptor;
export declare function narrationCacheDescriptor(opts: {
    beatId: string;
    cue: string;
    provider: string;
    voice?: unknown;
    ext: "mp3" | "wav";
}): CacheAssetDescriptor;
export declare function backdropCacheDescriptor(opts: {
    beatId: string;
    cue: string;
    provider: string;
    quality: "standard" | "hd";
    size: string;
    ratio?: string;
}): CacheAssetDescriptor;
export declare function imageRatioForSize(size: string | undefined): string;
export declare function videoCacheDescriptor(opts: {
    beatId: string;
    cue: string;
    provider: string;
    duration: number | undefined;
}): CacheAssetDescriptor;
export declare function musicCacheDescriptor(opts: {
    beatId: string;
    cue: string;
    provider: string;
    duration: number | undefined;
}): CacheAssetDescriptor;
export declare function normalizeVideoDuration(duration: number | undefined): number;
export declare function normalizeMusicDuration(duration: number | undefined): number;
