/**
 * @jrmc/adonis-attachment
 *
 * @license MIT
 * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
 */
import type { RowWithAttachment } from '../../types/mixin.js';
import type { Attachment as AttachmentType, LucidOptions } from '../../types/attachment.js';
export declare class AttachmentUtils {
    /**
     * Get attachments by attribute name, handling both single and array values
     */
    static getAttachmentsByAttributeName(row: RowWithAttachment, name: string): AttachmentType[];
    /**
     * Get original attachments by attribute name, handling both single and array values
     */
    static getOriginalAttachmentsByAttributeName(row: RowWithAttachment, name: string): AttachmentType[];
    /**
     * Get dirty attachments by attribute name, handling both single and array values
     */
    static getDirtyAttachmentsByAttributeName(row: RowWithAttachment, name: string): AttachmentType[];
    /**
     * Get options by attribute name from the model prototype
     */
    static getOptionsByAttributeName(row: RowWithAttachment, name: string): LucidOptions;
    /**
     * Get all attribute names that contain attachments
     */
    static getAttributeNamesOfAttachment(row: RowWithAttachment): string[];
    /**
     * Get dirty attribute names that contain attachments
     */
    static getDirtyAttributeNamesOfAttachment(row: RowWithAttachment): string[];
}
//# sourceMappingURL=attachment_utils.d.ts.map