import type { JsonFilePart, JsonImagePart, JsonUserContent } from '@polka-codes/core';
export type { JsonFilePart, JsonImagePart };
/**
 * Attach files to user message content for AI workflows
 *
 * @param content - The existing user content (string or array)
 * @param files - Optional array of files and images to attach
 * @returns The content array with files attached
 *
 * @example
 * ```ts
 * const content: JsonUserContent = 'Review these files'
 * const files = [
 *   { type: 'file', mediaType: 'text/plain', filename: 'test.ts', data: { type: 'base64', value: '...' } },
 *   { type: 'image', mediaType: 'image/png', image: { type: 'base64', value: '...' } }
 * ]
 * const withFiles = attachFilesToContent(content, files)
 * ```
 */
export declare function attachFilesToContent(content: JsonUserContent, files?: (JsonFilePart | JsonImagePart)[]): JsonUserContent;
/**
 * Create a user message with optional file attachments
 *
 * @param text - The text message content
 * @param files - Optional array of files and images to attach
 * @returns A complete user message with content array
 *
 * @example
 * ```ts
 * const message = createUserMessageWithFiles('Review this code', [
 *   { type: 'file', mediaType: 'text/plain', filename: 'code.ts', data: '...' }
 * ])
 * ```
 */
export declare function createUserMessageWithFiles(text: string, files?: (JsonFilePart | JsonImagePart)[]): {
    role: 'user';
    content: JsonUserContent;
};
/**
 * Filter files by media type
 */
export declare function filterFilesByMediaType(files: (JsonFilePart | JsonImagePart)[], mediaType: string | RegExp): (JsonFilePart | JsonImagePart)[];
/**
 * Get only image files from mixed file array
 */
export declare function getImages(files: (JsonFilePart | JsonImagePart)[]): JsonImagePart[];
/**
 * Get only document files from mixed file array
 */
export declare function getDocuments(files: (JsonFilePart | JsonImagePart)[]): JsonFilePart[];
/**
 * Count total files by type
 */
export declare function countFilesByType(files: (JsonFilePart | JsonImagePart)[]): {
    images: number;
    documents: number;
    total: number;
};
//# sourceMappingURL=file-attachments.d.ts.map