/**
 * Helpers to upload a self-service ticket's screenshot and attachments.
 *
 * Extracted from UserCreateTicketPage so the upload behaviour is unit-testable and so the
 * attachments upload runs in PARALLEL (previously sequential, one awaited request per file,
 * which made the "Envoyer une demande" submit feel slow / "pas fluide").
 *
 * Uploads happen AFTER the ticket is created: a per-file failure is collected and surfaced to
 * the user (they can re-upload from the ticket detail page) but never aborts the other uploads.
 */
export type UploadFailure = {
    name: string;
    message: string;
};
export interface UploadableAttachment {
    name: string;
    file: File;
}
export declare function extractErrorMessage(err: unknown): string;
export declare function uploadTicketScreenshot(ticketId: string, screenshotDataUrl: string, tenantSlug?: string): Promise<UploadFailure | null>;
export declare function uploadTicketAttachments(ticketId: string, attachments: readonly UploadableAttachment[], tenantSlug?: string): Promise<UploadFailure[]>;
//# sourceMappingURL=ticketAttachmentUpload.d.ts.map