import type { ChannelDirectoryEntryKind, ChannelId } from "../../channels/plugins/types.public.js"; import type { KlawConfig } from "../../config/types.klaw.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: KlawConfig): T | undefined; set(key: string, value: T, cfg: KlawConfig): void; clearMatching(match: (key: string) => boolean): void; clear(cfg?: KlawConfig): void; private resetIfConfigChanged; private pruneExpired; private evictToMaxSize; }