export type CacheKind = "extract" | "summary" | "transcript" | "chat" | "slides";
export type CacheCounts = Record<CacheKind, number>;
export type CacheStats = {
    path: string;
    sizeBytes: number;
    totalEntries: number;
    counts: CacheCounts;
};
export type PortableCacheRow = {
    kind: CacheKind;
    key: string;
    value: string;
    sizeBytes: number;
    createdAt: number;
    lastAccessedAt: number;
    expiresAt: number | null;
};
export declare const CACHE_FORMAT_VERSION = 2;
export declare const DEFAULT_CACHE_MAX_MB = 512;
export declare const DEFAULT_CACHE_TTL_DAYS = 30;
export declare const CACHE_KINDS: readonly CacheKind[];
export declare function createEmptyCacheCounts(): CacheCounts;
export declare function isCacheKind(value: unknown): value is CacheKind;
export declare function measureCacheValueBytes(value: string): number;
export declare function buildPortableCacheRow({ kind, key, value, ttlMs, now, }: {
    kind: CacheKind;
    key: string;
    value: string;
    ttlMs: number | null;
    now?: number;
}): PortableCacheRow;
export declare function isPortableCacheRowExpired(row: Pick<PortableCacheRow, "expiresAt">, now?: number): boolean;
export declare function parseCacheJson<T>(value: string | null | undefined): T | null;
export declare function summarizePortableCacheRows(rows: Iterable<Pick<PortableCacheRow, "kind" | "sizeBytes">>, path: string): CacheStats;
