import type { AttachmentStore } from '@wrongstack/core/types'; /** Maximum number of retained attachment previews. */ export declare const TOKEN_PREVIEWS_MAX_ENTRIES = 64; /** Maximum characters retained for one attachment preview. */ export declare const TOKEN_PREVIEW_MAX_CHARS: number; /** Maximum content lines retained before the truncation marker. */ export declare const TOKEN_PREVIEW_MAX_LINES = 6; /** Maximum characters retained across all attachment previews. */ export declare const TOKEN_PREVIEWS_MAX_CHARS: number; /** Maximum UTF-8 bytes inlined for a text-file mention. Larger files remain * attachable as path references with an explicit read-until-EOF contract. */ export declare const TEXT_FILE_ATTACHMENT_INLINE_MAX_BYTES: number; export interface TokenPreviewBudget { maxEntries?: number | undefined; maxChars?: number | undefined; maxPreviewChars?: number | undefined; maxPreviewLines?: number | undefined; } /** Build an independent, hard-capped display preview from canonical content. */ export declare function createTokenPreview(value: string, maxChars?: number, maxLines?: number): string; /** * LRU map of attachment token → bounded display preview. Canonical full * content remains exclusively in AttachmentStore and is resolved on demand. */ export declare class TokenPreviewStore { private readonly map; private totalChars; private readonly maxEntries; private readonly maxChars; private readonly maxPreviewChars; private readonly maxPreviewLines; constructor(budget?: TokenPreviewBudget); get size(): number; get chars(): number; get(token: string): string | undefined; has(token: string): boolean; set(token: string, value: string): void; delete(token: string): boolean; clear(): void; keysOldestFirst(): string[]; private evict; } /** Resolve text/file tokens from the canonical store without caching payloads. */ export declare function resolveAttachmentTokens(text: string, attachments: AttachmentStore): Promise; //# sourceMappingURL=token-previews.d.ts.map