import type { ChannelDirectoryEntryKind, ChannelId } from "../../channels/plugins/types.js"; import type { BotConfig } from "../../config/config.js"; export type DirectoryCacheKey = { channel: ChannelId; accountId?: string | null; kind: ChannelDirectoryEntryKind; source: "cache" | "live"; signature?: string | null; }; export declare function buildDirectoryCacheKey(key: DirectoryCacheKey): string; export declare class DirectoryCache { private readonly ttlMs; private readonly cache; private lastConfigRef; private readonly maxSize; constructor(ttlMs: number, maxSize?: number); get(key: string, cfg: BotConfig): T | undefined; set(key: string, value: T, cfg: BotConfig): void; clearMatching(match: (key: string) => boolean): void; clear(cfg?: BotConfig): void; private resetIfConfigChanged; private pruneExpired; private evictToMaxSize; }