/**
 * @license Copyright (c) 2003-2022, RAONWIZ DevTeam. All rights reserved.
 */
/// <reference types="react" />
import * as PropTypes from 'prop-types';
import { ComponentProps, ComponentMode, ComponentRuntimes } from './types';
/**
 * `RAONWIZ` component is a convenient wrapper around low-level hooks.
 * It's useful for simpler use cases. For advanced usage see `useRaonkUpload` hook.
 */
declare function RaonkUpload<EventHandlerProp>({ debug, id, config, componentUrl, runtimes, mode, 
/**
 * `handlers` object must contain event handlers props only!
 */
...handlers }: ComponentProps<EventHandlerProp>): JSX.Element;
declare namespace RaonkUpload {
    var propTypes: {
        onBeforeLoad: PropTypes.Requireable<(...args: any[]) => any>;
        onNamespaceLoaded: PropTypes.Requireable<(...args: any[]) => any>;
        onLoaded: PropTypes.Requireable<(...args: any[]) => any>;
        onCreationComplete: PropTypes.Requireable<(...args: any[]) => any>;
        onBeforeAddFile: PropTypes.Requireable<(...args: any[]) => any>;
        onAfterAddFile: PropTypes.Requireable<(...args: any[]) => any>;
        onAfterAddAllFile: PropTypes.Requireable<(...args: any[]) => any>;
        onBeforeDeleteFile: PropTypes.Requireable<(...args: any[]) => any>;
        onAfterDeleteFile: PropTypes.Requireable<(...args: any[]) => any>;
        onDeleteAllFile: PropTypes.Requireable<(...args: any[]) => any>;
        onBeforeUpload: PropTypes.Requireable<(...args: any[]) => any>;
        onUploadComplete: PropTypes.Requireable<(...args: any[]) => any>;
        onBeforeDownloadFile: PropTypes.Requireable<(...args: any[]) => any>;
        onBeforeOpenFile: PropTypes.Requireable<(...args: any[]) => any>;
        onDownloadCompleteFile: PropTypes.Requireable<(...args: any[]) => any>;
        onDownloadCompleteAllFile: PropTypes.Requireable<(...args: any[]) => any>;
        onOnError: PropTypes.Requireable<(...args: any[]) => any>;
        onUploadingCancel: PropTypes.Requireable<(...args: any[]) => any>;
        onDownloadCancel: PropTypes.Requireable<(...args: any[]) => any>;
        onSelectItem: PropTypes.Requireable<(...args: any[]) => any>;
        onCustomAction: PropTypes.Requireable<(...args: any[]) => any>;
        onAlert: PropTypes.Requireable<(...args: any[]) => any>;
        onDestroy: PropTypes.Requireable<(...args: any[]) => any>;
        /**
         * Config object passed to component's constructor.
         *
         * A new instance of component will be created everytime a new instance of `config` is provided.
         * If this is not expected behavior then ensure referential equality of `config` between renders.
         */
        config: PropTypes.Requireable<object>;
        /**
         * Toggles debugging. Logs info related to component lifecycle events.
         */
        debug: PropTypes.Requireable<boolean>;
        /**
         * Url with component's source code.
         */
        componentUrl: PropTypes.Requireable<string>;
        /**
         * A unique identifier of component instance.
         */
        id: PropTypes.Requireable<string>;
        /**
         * This prop has two-fold effect:
         *
         * - Serves as a convenience prop to start component in edit/view mode.
         *   It's an equivalent of passing `{ mode: 'edit' }` in `config` but takes precedence over it.
         */
        mode: PropTypes.Requireable<ComponentMode>;
        /**
         * Setups component in either `html5` or `agent` mode.
         */
        runtimes: PropTypes.Requireable<ComponentRuntimes>;
    };
}
export default RaonkUpload;
