/** * Platform-neutral attachment limit selection. * * Pure functions used by the platform layer before enqueueing a message: * filter inbound attachments against per-file and total size limits. */ import { type AttachmentMeta } from '../types.js'; export interface AttachmentLimits { maxFileBytes: number; maxTotalBytes: number; } export type AttachmentRejectionReason = 'file-too-large' | 'total-too-large'; export interface RejectedAttachment { attachment: AttachmentMeta; reason: AttachmentRejectionReason; limitBytes: number; } export interface AttachmentSelection { accepted: AttachmentMeta[]; rejected: RejectedAttachment[]; totalAcceptedBytes: number; } export declare function selectAttachmentsWithinLimits(attachments: AttachmentMeta[], limits: AttachmentLimits): AttachmentSelection; export declare function buildAttachmentOnlyPrompt(attachmentCount: number): string;