/// <reference types="@adonisjs/bodyparser/build/adonis-typings" />
declare module '@ioc:Adonis/Addons/Cloudinary' {
    import { DeliveryType, ResourceType, ResponseCallback, TransformationOptions, UploadApiOptions, UploadApiResponse } from 'cloudinary';
    import { MultipartFileContract } from '@ioc:Adonis/Core/BodyParser';
    interface CloudinaryConfig {
        cloudName: string;
        apiKey: string;
        apiSecret: string;
        secure: boolean;
        [key: string]: TransformationOptions;
    }
    function upload(filePath: string, publicId: string | null, uploadOptions?: UploadApiOptions, callback?: ResponseCallback): Promise<UploadApiResponse>;
    function upload(file: MultipartFileContract, publicId: string | null, uploadOptions?: UploadApiOptions, callback?: ResponseCallback): Promise<UploadApiResponse>;
    function unsignedUpload(filePath: string, uploadPreset: string, publicId: string | null, uploadOptions?: UploadApiOptions, callback?: ResponseCallback): Promise<UploadApiResponse>;
    function unsignedUpload(file: MultipartFileContract, uploadPreset: string, publicId: string | null, uploadOptions?: UploadApiOptions, callback?: ResponseCallback): Promise<UploadApiResponse>;
    function getResult(): UploadApiResponse;
    function getPublicId(): string;
    function show(publicId: any, options?: TransformationOptions): string;
    function secureShow(publicId: any, options?: TransformationOptions): string;
    function destroy(publicId: any, options?: {
        resource_type?: ResourceType;
        type?: DeliveryType;
        invalidate?: boolean;
    }): any;
}
