import * as _cloudinary_url_gen_config_interfaces_Config_ICloudinaryConfigurations from '@cloudinary/url-gen/config/interfaces/Config/ICloudinaryConfigurations';
import React, { MutableRefObject } from 'react';
import { ImageProps } from 'next/image';
import { ImageOptions, ConfigOptions, AnalyticsOptions, VideoOptions } from '@cloudinary-util/url-loader';

type CldImageProps = Omit<ImageProps, 'src'> & ImageOptions & {
    config?: ConfigOptions;
    preserveTransformations?: boolean;
    src: string;
    unoptimized?: boolean;
};
declare const CldImage: React.ForwardRefExoticComponent<Omit<ImageProps, "src"> & {
    src: string;
    crop?: "fill" | "lfill" | "fill_pad" | "crop" | "thumb" | "scale" | "fit" | "limit" | "mfit" | "pad" | "lpad" | "mpad" | "imagga_scale" | "imagga_crop" | undefined;
    sanitize?: boolean | undefined;
    assetType?: string | undefined;
    deliveryType?: string | undefined;
    dpr?: string | number | undefined;
    format?: string | undefined;
    height?: string | number | undefined;
    quality?: string | number | undefined;
    strictTransformations?: boolean | undefined;
    width?: string | number | undefined;
    art?: any;
    autoBrightness?: any;
    autoColor?: any;
    autoContrast?: any;
    assistColorblind?: any;
    background?: any;
    blackwhite?: any;
    blur?: any;
    blurFaces?: any;
    blurRegion?: any;
    border?: any;
    brightness?: any;
    brightnessHSB?: any;
    cartoonify?: any;
    color?: any;
    colorize?: any;
    contrast?: any;
    distort?: any;
    fillLight?: any;
    gamma?: any;
    gradientFade?: any;
    grayscale?: any;
    improve?: any;
    multiply?: any;
    negate?: any;
    oilPaint?: any;
    opacity?: any;
    outline?: any;
    pixelate?: any;
    pixelateFaces?: any;
    pixelateRegion?: any;
    radius?: any;
    redeye?: any;
    replaceColor?: any;
    saturation?: any;
    screen?: any;
    sepia?: any;
    shadow?: any;
    sharpen?: any;
    shear?: any;
    simulateColorblind?: any;
    tint?: any;
    trim?: any;
    unsharpMask?: any;
    vectorize?: any;
    vibrance?: any;
    vignette?: any;
    effects?: {
        art?: any;
        autoBrightness?: any;
        autoColor?: any;
        autoContrast?: any;
        assistColorblind?: any;
        background?: any;
        blackwhite?: any;
        blur?: any;
        blurFaces?: any;
        blurRegion?: any;
        border?: any;
        brightness?: any;
        brightnessHSB?: any;
        cartoonify?: any;
        color?: any;
        colorize?: any;
        contrast?: any;
        distort?: any;
        fillLight?: any;
        gamma?: any;
        gradientFade?: any;
        grayscale?: any;
        improve?: any;
        multiply?: any;
        negate?: any;
        oilPaint?: any;
        opacity?: any;
        outline?: any;
        pixelate?: any;
        pixelateFaces?: any;
        pixelateRegion?: any;
        radius?: any;
        redeye?: any;
        replaceColor?: any;
        saturation?: any;
        screen?: any;
        sepia?: any;
        shadow?: any;
        sharpen?: any;
        shear?: any;
        simulateColorblind?: any;
        tint?: any;
        trim?: any;
        unsharpMask?: any;
        vectorize?: any;
        vibrance?: any;
        vignette?: any;
    }[] | undefined;
    flags?: "splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform" | ("splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform")[] | undefined;
    gravity?: string | undefined;
    text?: string | undefined;
    version?: string | number | undefined;
    underlay?: string | undefined;
    underlays?: {
        appliedEffects?: {}[] | undefined;
        appliedFlags?: "splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform" | ("splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform")[] | undefined;
        effects?: {}[] | undefined;
        crop?: "fill" | "lfill" | "fill_pad" | "crop" | "thumb" | "scale" | "fit" | "limit" | "mfit" | "pad" | "lpad" | "mpad" | "imagga_scale" | "imagga_crop" | undefined;
        flags?: "splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform" | ("splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform")[] | undefined;
        height?: string | number | undefined;
        position?: {
            angle?: string | number | undefined;
            gravity?: string | undefined;
            x?: string | number | undefined;
            y?: string | number | undefined;
        } | undefined;
        publicId?: string | undefined;
        type?: string | undefined;
        url?: string | undefined;
        width?: string | number | undefined;
    }[] | undefined;
    seoSuffix?: string | undefined;
    removeBackground?: boolean | undefined;
    rawTransformations?: string | string[] | undefined;
    overlay?: {
        appliedEffects?: {}[] | undefined;
        appliedFlags?: "splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform" | ("splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform")[] | undefined;
        effects?: {}[] | undefined;
        crop?: "fill" | "lfill" | "fill_pad" | "crop" | "thumb" | "scale" | "fit" | "limit" | "mfit" | "pad" | "lpad" | "mpad" | "imagga_scale" | "imagga_crop" | undefined;
        flags?: "splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform" | ("splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform")[] | undefined;
        height?: string | number | undefined;
        position?: {
            angle?: string | number | undefined;
            gravity?: string | undefined;
            x?: string | number | undefined;
            y?: string | number | undefined;
        } | undefined;
        publicId?: string | undefined;
        text?: string | {
            text: string;
            alignment?: string | undefined;
            antialias?: string | undefined;
            border?: string | undefined;
            color?: string | undefined;
            fontFamily?: string | undefined;
            fontSize?: number | undefined;
            fontStyle?: string | number | undefined;
            fontWeight?: string | undefined;
            hinting?: string | number | undefined;
            letterSpacing?: string | number | undefined;
            lineSpacing?: string | number | undefined;
            stroke?: string | undefined;
        } | undefined;
        url?: string | undefined;
        width?: string | number | undefined;
    } | undefined;
    overlays?: {
        appliedEffects?: {}[] | undefined;
        appliedFlags?: "splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform" | ("splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform")[] | undefined;
        effects?: {}[] | undefined;
        crop?: "fill" | "lfill" | "fill_pad" | "crop" | "thumb" | "scale" | "fit" | "limit" | "mfit" | "pad" | "lpad" | "mpad" | "imagga_scale" | "imagga_crop" | undefined;
        flags?: "splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform" | ("splice" | "animated" | "any_format" | "apng" | "attachment" | "awebp" | "clip" | "clip_evenodd" | "cutter" | "force_icc" | "force_strip" | "getinfo" | "group4" | "hlsv3" | "ignore_aspect_ratio" | "ignore_mask_channels" | "immutable_cache" | "keep_attribution" | "keep_dar" | "keep_iptc" | "layer_apply" | "lossy" | "mono" | "no_overflow" | "no_stream" | "png8_fl_png24_fl_png32" | "preserve_transparency" | "progressive" | "rasterize" | "region_relative" | "relative" | "replace_image" | "sanitize" | "streaming_attachment" | "strip_profile" | "text_disallow_overflow" | "text_no_trim" | "tiff8_lzw" | "tiled" | "truncate_ts" | "waveform")[] | undefined;
        height?: string | number | undefined;
        position?: {
            angle?: string | number | undefined;
            gravity?: string | undefined;
            x?: string | number | undefined;
            y?: string | number | undefined;
        } | undefined;
        publicId?: string | undefined;
        text?: string | {
            text: string;
            alignment?: string | undefined;
            antialias?: string | undefined;
            border?: string | undefined;
            color?: string | undefined;
            fontFamily?: string | undefined;
            fontSize?: number | undefined;
            fontStyle?: string | number | undefined;
            fontWeight?: string | undefined;
            hinting?: string | number | undefined;
            letterSpacing?: string | number | undefined;
            lineSpacing?: string | number | undefined;
            stroke?: string | undefined;
        } | undefined;
        url?: string | undefined;
        width?: string | number | undefined;
    }[] | undefined;
    namedTransformations?: string | string[] | undefined;
    transformations?: string | string[] | undefined;
    aspectRatio?: string | number | undefined;
    widthResize?: string | number | undefined;
    zoom?: string | undefined;
    zoompan?: string | boolean | {
        options: string;
        loop: string | boolean;
    } | undefined;
    restore?: boolean | undefined;
    replace?: string[] | boolean[] | {
        to: string;
        from: string;
        preserveGeometry?: boolean | undefined;
    } | undefined;
    remove?: string | string[] | {
        prompt?: string | string[] | undefined;
        region?: number[] | number[][] | undefined;
        multiple?: boolean | undefined;
        removeShadow?: boolean | undefined;
    } | undefined;
    recolor?: string | string[] | {
        prompt?: string | string[] | undefined;
        to?: string | undefined;
        multiple?: boolean | undefined;
    } | undefined;
    fillBackground?: boolean | {
        crop?: "fill" | "lfill" | "fill_pad" | "crop" | "thumb" | "scale" | "fit" | "limit" | "mfit" | "pad" | "lpad" | "mpad" | "imagga_scale" | "imagga_crop" | undefined;
        gravity?: string | undefined;
        prompt?: string | undefined;
    } | undefined;
    defaultImage?: string | undefined;
} & {
    config?: _cloudinary_url_gen_config_interfaces_Config_ICloudinaryConfigurations.default | undefined;
    preserveTransformations?: boolean | undefined;
    src: string;
    unoptimized?: boolean | undefined;
} & React.RefAttributes<HTMLImageElement>>;

type CldOgImageProps = CldImageProps & {
    excludeTags?: Array<string>;
    keys?: object;
    twitterTitle?: string;
};
declare const CldOgImage: ({ excludeTags, twitterTitle, keys, ...props }: CldOgImageProps) => React.JSX.Element;

type CldUploadWidgetCloudinaryInstance = any;
type CldUploadWidgetWidgetInstance = any;
type CustomURL = `https://${string}.${string}`;
interface CldUploadWidgetResults {
    event?: string;
    info?: string | CldUploadWidgetInfo;
}
interface CldUploadWidgetInfo {
    access_mode: 'public' | 'authenticated';
    api_key: string;
    asset_id: string;
    batchId: string;
    bytes: number;
    context: Record<string, Record<string, string>>;
    created_at: string;
    etag: string;
    folder: string;
    format: string;
    height: number;
    hook_execution: Record<string, unknown>;
    id: string;
    info: Record<string, unknown>;
    original_filename: string;
    pages: number;
    path: string;
    placeholder: boolean;
    public_id: string;
    resource_type: 'image' | 'raw' | 'video' | 'auto';
    secure_url: string;
    signature: string;
    tags: string[];
    thumbnail_url: string;
    type: 'upload' | 'private' | 'authenticated';
    url: string;
    version: number;
    width: number;
    [key: string]: unknown;
}
type CldUploadWidgetDestroyInstanceMethodOptions = {
    removeThumbnails: boolean;
};
type CldUploadWidgetCloseInstanceMethodOptions = {
    quiet: boolean;
};
type CldUploadWidgetOpenInstanceMethodOptions = {
    files: CustomURL[];
};
type CldUploadWidgetOpenWidgetSources = 'local' | 'url' | 'camera' | 'image_search' | 'google_drive' | 'dropbox' | 'facebook' | 'instagram' | 'shutterstock' | 'getty' | 'istock' | 'unsplash' | null;
type CldUploadWidgetUpdateInstanceMethodOptions = Omit<CldUploadWidgetPropsOptions, "secure" | "uploadSignature" | "getTags" | "preBatch" | "inlineContainer" | "fieldName"> & {
    cloudName: string;
    uploadPreset: string;
};
interface CldUploadWidgetInstanceMethods {
    close: (options?: CldUploadWidgetCloseInstanceMethodOptions) => void;
    destroy: (options?: CldUploadWidgetDestroyInstanceMethodOptions) => Promise<void>;
    hide: () => void;
    isDestroyed: () => boolean;
    isMinimized: () => boolean;
    isShowing: () => boolean;
    minimize: () => void;
    open: (widgetSource?: CldUploadWidgetOpenWidgetSources, options?: CldUploadWidgetOpenInstanceMethodOptions) => void;
    show: () => void;
    update: (options: CldUploadWidgetUpdateInstanceMethodOptions) => void;
}
type CldUploadWidgetError = {
    status: string;
    statusText: string;
} | string | null;
interface CldUploadWidgetProps {
    children?: ({ cloudinary, widget, open, results, error }: CldUploadWidgetPropsChildren) => JSX.Element;
    onError?: CldUploadEventCallbackError;
    onOpen?: CldUploadEventCallbackWidgetOnly;
    onUpload?: CldUploadEventCallbackNoOptions;
    onAbort?: CldUploadEventCallback;
    onBatchCancelled?: CldUploadEventCallback;
    onClose?: CldUploadEventCallbackWidgetOnly;
    onDisplayChanged?: CldUploadEventCallback;
    onPublicId?: CldUploadEventCallback;
    onQueuesEnd?: CldUploadEventCallback;
    onQueuesStart?: CldUploadEventCallback;
    onRetry?: CldUploadEventCallback;
    onShowCompleted?: CldUploadEventCallback;
    onSourceChanged?: CldUploadEventCallback;
    onSuccess?: CldUploadEventCallback;
    onTags?: CldUploadEventCallback;
    onUploadAdded?: CldUploadEventCallback;
    options?: CldUploadWidgetPropsOptions;
    signatureEndpoint?: URL | RequestInfo;
    uploadPreset?: string;
}
type CldUploadWidgetPropsChildren = {
    cloudinary: CldUploadWidgetCloudinaryInstance;
    widget: CldUploadWidgetWidgetInstance;
    error?: CldUploadWidgetError;
    isLoading?: boolean;
    results?: CldUploadWidgetResults;
} & CldUploadWidgetInstanceMethods;
interface CldUploadWidgetPropsOptions {
    encryption?: {
        key: string;
        iv: string;
    };
    defaultSource?: string;
    maxFiles?: number;
    multiple?: boolean;
    sources?: Array<"camera" | "dropbox" | "facebook" | "gettyimages" | "google_drive" | "image_search" | "instagram" | "istock" | "local" | "shutterstock" | "unsplash" | "url">;
    cropping?: boolean;
    croppingAspectRatio?: number;
    croppingCoordinatesMode?: string;
    croppingDefaultSelectionRatio?: number;
    croppingShowBackButton?: boolean;
    croppingShowDimensions?: boolean;
    showSkipCropButton?: boolean;
    dropboxAppKey?: string;
    facebookAppId?: string;
    googleApiKey?: string;
    googleDriveClientId?: string;
    instagramClientId?: string;
    searchByRights?: boolean;
    searchBySites?: Array<string>;
    context?: object;
    folder?: string;
    publicId?: string;
    resourceType?: string;
    tags?: Array<string>;
    uploadSignature?: string | Function;
    uploadSignatureTimestamp?: number;
    clientAllowedFormats?: Array<string>;
    croppingValidateDimensions?: boolean;
    maxChunkSize?: number;
    maxImageFileSize?: number;
    maxImageHeight?: number;
    maxImageWidth?: number;
    maxFileSize?: number;
    maxRawFileSize?: number;
    maxVideoFileSize?: number;
    minImageHeight?: number;
    minImageWidth?: number;
    validateMaxWidthHeight?: boolean;
    fieldName?: string;
    form?: string;
    thumbnails?: string;
    thumbnailTransformation?: string | Array<object>;
    buttonCaption?: string;
    buttonClass?: string;
    text?: object;
    theme?: string;
    styles?: object;
    autoMinimize?: boolean;
    getTags?: Function;
    getUploadPresets?: Function;
    inlineContainer?: any;
    language?: string;
    preBatch?: Function;
    prepareUploadParams?: Function;
    queueViewPosition?: string;
    showAdvancedOptions?: boolean;
    showCompletedButton?: boolean;
    showInsecurePreview?: boolean;
    showPoweredBy?: boolean;
    showUploadMoreButton?: boolean;
    singleUploadAutoClose?: boolean;
    detection?: string;
    on_success?: string;
}
type CldUploadEventCallback = (results: CldUploadWidgetResults, widget: CldUploadEventCallbackWidget) => void;
type CldUploadEventCallbackNoOptions = (results: CldUploadWidgetResults, widget: CldUploadWidgetWidgetInstance) => void;
type CldUploadEventCallbackWidgetOnly = (widget: CldUploadWidgetWidgetInstance) => void;
type CldUploadEventCallbackError = (error: CldUploadWidgetError, widget: CldUploadWidgetWidgetInstance) => void;
type CldUploadEventCallbackWidget = {
    widget: CldUploadWidgetWidgetInstance;
} & CldUploadWidgetInstanceMethods;

declare const CldUploadWidget: ({ children, onClose, onError, onOpen, onUpload, options, signatureEndpoint, uploadPreset, ...props }: CldUploadWidgetProps) => React.JSX.Element;

interface CldUploadButtonProps extends Omit<CldUploadWidgetProps, 'children'> {
    className?: string;
    children?: JSX.Element | string | Array<JSX.Element | string>;
    onClick?: Function;
}
declare const CldUploadButton: ({ className, children, onClick, onError, onOpen, onUpload, onAbort, onBatchCancelled, onClose, onDisplayChanged, onPublicId, onQueuesEnd, onQueuesStart, onRetry, onShowCompleted, onSourceChanged, onSuccess, onTags, onUploadAdded, options, signatureEndpoint, uploadPreset, ...props }: CldUploadButtonProps) => React.JSX.Element;

interface CloudinaryVideoPlayer {
    on: Function;
}
interface CloudinaryVideoPlayerOptionsLogo {
    logoImageUrl?: string;
    logoOnclickUrl?: string;
    showLogo?: boolean;
}
interface CloudinaryVideoPlayerOptions extends CloudinaryVideoPlayerOptionsLogo {
    aiHighlightsGraph?: boolean;
    bigPlayButton?: boolean | string;
    colors?: CloudinaryVideoPlayerOptionsColors;
    controlBar?: {
        pictureInPictureToggle?: boolean;
        chaptersButton?: boolean;
    };
    controls?: boolean;
    floatingWhenNotVisible?: string;
    fluid?: boolean;
    fontFace?: string;
    hideContextMenu?: boolean;
    interactionAreas?: any;
    playbackRates?: Array<any>;
    playlistWidget?: {
        direction?: string;
        total?: string;
    };
    posterOptions?: CloudinaryVideoPlayerOptionPosterOptions;
    showJumpControls?: boolean;
    seekThumbnails?: boolean;
    videoJS?: object;
    autoPlay?: string | boolean | undefined;
    autoplay?: string | boolean | undefined;
    autoplayMode?: string;
    autoShowRecommendations?: boolean;
    loop?: boolean;
    maxTries?: Number;
    muted?: boolean;
    playedEventPercents?: number[];
    playedEventTimes?: null | Array<any>;
    playsinline?: boolean;
    videoTimeout?: number;
    withCredentials?: boolean;
    chapters?: object;
    preload?: string;
    publicId?: string;
    sourceTransformation?: object;
    sourceTypes?: Array<string>;
    transformation?: Array<object> | object;
    ads?: {
        adTagUrl?: string;
        adsInPlaylist?: string;
        showCountdown?: boolean;
        adLabel?: string;
        locale?: string;
        prerollTimeout?: number;
        postrollTimeout?: number;
    };
    analytics?: boolean;
    allowUsageReport?: Boolean;
    cloud_name?: string;
    cname?: string;
    privateCdn?: boolean;
    queryParams?: Record<string, string | number | boolean> | string;
    secure?: boolean;
    secureDistribution?: string;
    language?: string;
    languages?: Record<string, object>;
}
interface CloudinaryVideoPlayerOptionsColors {
    accent?: string;
    base?: string;
    text?: string;
}
interface CloudinaryVideoPlayerOptionPosterOptions {
    publicId: string;
}

/**
 * getCldImageUrl
 */
type GetCldImageUrlOptions = ImageOptions;
type GetCldImageUrlConfig = ConfigOptions;
type GetCldImageUrlAnalytics = AnalyticsOptions;
interface GetCldImageUrl {
    options: GetCldImageUrlOptions;
    config?: GetCldImageUrlConfig;
    analytics?: GetCldImageUrlAnalytics;
}
declare function getCldImageUrl(options: GetCldImageUrlOptions, config?: GetCldImageUrlConfig, analytics?: GetCldImageUrlAnalytics): string;

/**
 * getCldVideoUrl
 */
type GetCldVideoUrlOptions = VideoOptions;
type GetCldVideoUrlConfig = ConfigOptions;
type GetCldVideoUrlAnalytics = AnalyticsOptions;
declare function getCldVideoUrl(options: GetCldVideoUrlOptions, config?: GetCldVideoUrlConfig, analytics?: GetCldVideoUrlAnalytics): string;

type CldVideoPlayerProps = Omit<CloudinaryVideoPlayerOptions, "cloud_name" | "autoplayMode" | "publicId" | "secure" | "showLogo" | "logoImageUrl" | "logoOnclickUrl"> & {
    className?: string;
    height: string | number;
    id?: string;
    logo?: boolean | CldVideoPlayerPropsLogo;
    onDataLoad?: Function;
    onError?: Function;
    onMetadataLoad?: Function;
    onPause?: Function;
    onPlay?: Function;
    onEnded?: Function;
    playerRef?: MutableRefObject<CloudinaryVideoPlayer | null>;
    poster?: string | GetCldImageUrlOptions | GetCldVideoUrlOptions;
    src: string;
    videoRef?: MutableRefObject<HTMLVideoElement | null>;
    quality?: string | number;
    width: string | number;
};
interface CldVideoPlayerPropsColors extends CloudinaryVideoPlayerOptionsColors {
}
interface CldVideoPlayerPropsLogo {
    imageUrl?: CloudinaryVideoPlayerOptionsLogo['logoImageUrl'];
    logo?: boolean;
    onClickUrl?: CloudinaryVideoPlayerOptionsLogo['logoOnclickUrl'];
}

declare const CldVideoPlayer: (props: CldVideoPlayerProps) => React.JSX.Element;

interface CloudinaryLoaderCldOptions {
    widthResize?: string | number;
}
interface CloudinaryLoaderLoaderOptions {
    height?: string | number;
    width?: string | number;
}
interface CloudinaryLoader {
    loaderOptions: CloudinaryLoaderLoaderOptions;
    imageProps: ImageProps;
    cldOptions: CloudinaryLoaderCldOptions;
    cldConfig?: object;
}
declare function cloudinaryLoader({ loaderOptions, imageProps, cldOptions, cldConfig }: CloudinaryLoader): string;

/**
 * getCldImageUrl
 */
type GetCldOgImageUrl = GetCldImageUrl;
type GetCldOgImageUrlOptions = GetCldImageUrlOptions;
declare function getCldOgImageUrl(options: GetCldOgImageUrlOptions): string;

export { CldImage, CldImageProps, CldOgImage, CldOgImageProps, CldUploadButton, CldUploadButtonProps, CldUploadWidget, CldUploadWidgetInfo, CldUploadWidgetProps, CldUploadWidgetPropsChildren, CldUploadWidgetPropsOptions, CldUploadWidgetResults, CldVideoPlayer, CldVideoPlayerProps, CldVideoPlayerPropsColors, CldVideoPlayerPropsLogo, CloudinaryLoader, CloudinaryLoaderCldOptions, CloudinaryLoaderLoaderOptions, CloudinaryVideoPlayer, CloudinaryVideoPlayerOptions, CloudinaryVideoPlayerOptionsColors, CloudinaryVideoPlayerOptionsLogo, GetCldImageUrl, GetCldImageUrlAnalytics, GetCldImageUrlConfig, GetCldImageUrlOptions, GetCldOgImageUrl, GetCldOgImageUrlOptions, GetCldVideoUrlAnalytics, GetCldVideoUrlConfig, GetCldVideoUrlOptions, cloudinaryLoader, getCldImageUrl, getCldOgImageUrl, getCldVideoUrl };
