/**
 * File upload metadata tracking for the SXL agent.
 *
 * Maintains a session-scoped list of files uploaded by the user.
 * The agent uses this metadata to know what files are available
 * and injects a summary into the system prompt.
 *
 * Port of LangGraph `FileUploadData` and `add_file_uploads` reducer
 * from `backend/agent/state.py`.
 */
/**
 * Metadata for a file uploaded by the user.
 *
 * Matches the LangGraph FileUploadData fields (camelCase).
 * The frontend strips UI-only fields (file_id, status, progress, checksum)
 * before sending to the backend.
 */
export interface FileUploadData {
    /** MIME type of the uploaded file (e.g. "application/pdf"). */
    mimeType: string;
    /** Original filename for display (e.g. "report.pdf"). */
    name: string;
    /** Filename in the sandbox for agent access. Usually same as name. */
    storageName?: string;
    /** File size in bytes. */
    fileSize?: number;
    /** Attachment ID for linking back to the frontend upload record. */
    attachmentId?: string;
}
/**
 * Merge new file uploads into an existing array, deduplicating by `name`.
 *
 * When a file with the same name already exists, the newer entry overwrites it.
 * New names are appended.
 *
 * Returns a new array — does not mutate the inputs.
 */
export declare function mergeFileUploads(existing: readonly FileUploadData[], incoming: readonly FileUploadData[]): FileUploadData[];
/**
 * Sanitize a string before interpolating it into the system prompt.
 *
 * Defends against prompt injection via malicious filenames or MIME types:
 * - Replaces newlines (`\n`, `\r`) with spaces
 * - Strips Markdown control characters (`*`, `#`, `[`, `]`, `` ` ``)
 * - Truncates to {@link MAX_PROMPT_STRING_LENGTH} characters
 */
export declare function sanitizeForPrompt(str: string): string;
/**
 * Format file upload metadata into a system prompt section.
 *
 * Returns an empty string when no files are present, so callers can
 * unconditionally append the result.
 */
export declare function formatFileUploadsContext(files: readonly FileUploadData[]): string;
//# sourceMappingURL=file-uploads.d.ts.map