/**
 * Maximum attachment size in bytes (10 MB).
 *
 * Matches the CLI's `maxAttachmentSize` and the gRPC server's
 * `MaxRecvMsgSize`. Files exceeding this limit are rejected before
 * upload to avoid wasting bandwidth on requests that will fail.
 */
export declare const MAX_ATTACHMENT_BYTES: number;
/**
 * Detects the MIME content type for a file.
 *
 * Prefers the browser-provided `File.type` when available and
 * non-empty. Falls back to extension-based detection mirroring the
 * CLI's `detectContentType` function. Returns
 * `"application/octet-stream"` when neither source yields a result.
 */
export declare function detectContentType(file: File): string;
/**
 * Formats a byte count as a human-readable string (e.g., `"2.3 MB"`).
 *
 * Uses base-1024 (binary) units with one decimal place, consistent
 * with {@link formatArtifactSize} in the artifact utilities.
 */
export declare function formatFileSize(bytes: number): string;
/**
 * Validates a file against the attachment size limit.
 *
 * Returns `null` when valid, or an error message string when the
 * file exceeds {@link MAX_ATTACHMENT_BYTES}.
 */
export declare function validateAttachmentSize(file: File): string | null;
//# sourceMappingURL=attachment-utils.d.ts.map