/**
 * @jrmc/adonis-attachment
 *
 * @license MIT
 * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
 */
import type { LucidRow } from '@adonisjs/lucid/types/model';
import type { DriveService, SignedURLOptions } from '@adonisjs/drive/types';
import type { LucidOptions, AttachmentBaseAttributes, AttachmentBase as AttachmentBaseInterface } from '../types/attachment.js';
import type { Exif, Input } from '../types/input.js';
export declare class AttachmentBase implements AttachmentBaseInterface {
    #private;
    drive: DriveService;
    input?: Input;
    size: number;
    extname: string;
    mimeType: string;
    meta?: Exif;
    originalPath?: string;
    url?: string;
    options: LucidOptions;
    constructor(drive: DriveService, attributes: AttachmentBaseAttributes, input?: Input);
    /**
     * Getters
     */
    get name(): string;
    get folder(): string | undefined;
    get path(): string;
    /**
     * Methods
     */
    getDisk(): import("flydrive").Disk;
    getBytes(): Promise<Uint8Array<ArrayBufferLike>>;
    getBuffer(): Promise<Buffer<ArrayBuffer>>;
    getStream(): Promise<import("stream").Readable>;
    getUrl(): Promise<string>;
    getSignedUrl(signedUrlOptions?: SignedURLOptions): Promise<string>;
    setOptions(options: LucidOptions): this;
    makeFolder(record?: LucidRow): this;
    /**
     *
     */
    toObject(): AttachmentBaseAttributes;
    toJSON(): Object;
}
//# sourceMappingURL=attachment_base.d.ts.map