import { type CacheKind, type CacheStats } from "@steipete/summarize-core/runtime";
export { buildAttachmentContentHash, buildExtractCacheKeyValue, buildLanguageKey, buildLengthKey, buildPromptContentHash, buildPromptHash, buildSlidesCacheKeyValue, buildSummaryCacheKeyValue, buildTranscriptCacheKeyValue, hashJson, hashString, hashBytes, normalizeContentForHash, extractTaggedBlock, } from "./cache-keys.js";
export { CACHE_FORMAT_VERSION, DEFAULT_CACHE_MAX_MB, DEFAULT_CACHE_TTL_DAYS, type CacheKind, type CacheStats, } from "@steipete/summarize-core/runtime";
import type { TranscriptCache } from "./content/index.js";
export type CacheConfig = {
    enabled?: boolean;
    maxMb?: number;
    ttlDays?: number;
    path?: string;
};
export type CacheStore = {
    getText: (kind: CacheKind, key: string) => string | null;
    getJson: <T>(kind: CacheKind, key: string) => T | null;
    setText: (kind: CacheKind, key: string, value: string, ttlMs: number | null) => void;
    setJson: (kind: CacheKind, key: string, value: unknown, ttlMs: number | null) => void;
    clear: () => void;
    close: () => void;
    transcriptCache: TranscriptCache;
};
export type CacheState = {
    mode: "default" | "bypass";
    store: CacheStore | null;
    ttlMs: number;
    maxBytes: number;
    path: string | null;
};
export declare function resolveCachePath({ env, cachePath, }: {
    env: Record<string, string | undefined>;
    cachePath: string | null;
}): string | null;
export declare function createCacheStore({ path, maxBytes, transcriptNamespace, }: {
    path: string;
    maxBytes: number;
    transcriptNamespace?: string | null;
}): Promise<CacheStore>;
export declare function clearCacheFiles(path: string): void;
export declare function buildExtractCacheKey({ url, options, }: {
    url: string;
    options: Record<string, unknown>;
}): string;
export declare function buildSummaryCacheKey({ contentHash, promptHash, model, lengthKey, languageKey, }: {
    contentHash: string;
    promptHash: string;
    model: string;
    lengthKey: string;
    languageKey: string;
}): string;
export declare function buildSlidesCacheKey({ url, settings, }: {
    url: string;
    settings: {
        ocr: boolean;
        outputDir: string;
        sceneThreshold: number;
        autoTuneThreshold: boolean;
        maxSlides: number;
        minDurationSeconds: number;
    };
}): string;
export declare function buildTranscriptCacheKey({ url, namespace, formatVersion, fileMtime, }: {
    url: string;
    namespace: string | null;
    formatVersion?: number;
    fileMtime?: number | null;
}): string;
export declare function readCacheStats(path: string): Promise<CacheStats | null>;
export declare function getSqliteFileSizeBytes(path: string): number;
