import * as React from "react";
import * as PropTypes from "prop-types";
import { Size } from "../utils/Forms";
import "./FileInput.less";
import "../less/forms.less";
export interface Props {
    className?: string;
    customIcon?: JSX.Element;
    dropzoneClass?: string;
    iconOnly?: boolean;
    label?: string;
    store: Function;
    accept?: string;
    size?: Size;
}
interface State {
    fileKey: number;
    filename: string;
    error: string;
    progress: number;
    success: boolean;
}
export declare class FileInput extends React.Component<Props, State> {
    static propTypes: {
        className: PropTypes.Requireable<string>;
        customIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        dropzoneClass: PropTypes.Requireable<string>;
        iconOnly: PropTypes.Requireable<boolean>;
        label: PropTypes.Requireable<string>;
        store: PropTypes.Validator<(...args: any[]) => any>;
        accept: PropTypes.Requireable<string>;
        size: PropTypes.Requireable<string>;
    };
    static defaultProps: {
        iconOnly: boolean;
        className: string;
        size: "fullWidth";
    };
    constructor(props: Props);
    onDropAccepted(files: any): void;
    onDropRejected(): void;
    render(): JSX.Element;
}
export {};
