/**
 * @jrmc/adonis-attachment
 *
 * @license MIT
 * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
 */
import type { DriveService, SignedURLOptions } from '@adonisjs/drive/types';
import type { AttachmentAttributes, Attachment as AttachmentInterface, LucidOptions } from '../types/attachment.js';
import type { Input } from '../types/input.js';
import { AttachmentBase } from './attachment_base.js';
import { Variant } from './variant_attachment.js';
import { LucidRow } from '@adonisjs/lucid/types/model';
export declare class Attachment extends AttachmentBase implements AttachmentInterface {
    originalName: string;
    variants?: Variant[];
    constructor(drive: DriveService, attributes: AttachmentAttributes, input?: Input);
    /**
     * Methods
     */
    createVariant(key: string, input: Input, options?: {
        basePath?: string;
        ignoreFolder?: boolean;
    }): Promise<Variant>;
    getVariant(variantName: string): Variant | null;
    getUrl(variantName?: string): Promise<string>;
    getSignedUrl(variantNameOrOptions?: string | SignedURLOptions, signedUrlOptions?: SignedURLOptions): Promise<string>;
    setOptions(options: LucidOptions): this;
    /**
     * Actions
     */
    preComputeUrl(): Promise<void>;
    makeName(record?: LucidRow, attributeName?: string): Promise<this>;
    moveFileForDelete(): Promise<void>;
    rollbackMoveFileForDelete(): Promise<void>;
    remove(): Promise<void>;
    /**
     *
     */
    toObject(): AttachmentAttributes;
    toJSON(): Object;
}
//# sourceMappingURL=attachment.d.ts.map