import { IRenderable, IRenderer, ISpecification } from '../../api';
/**
 * Implementation of the 'upload' markup element.
 * Multiple HTML elements are used to create an upload drop area.
 * For CSS manipulations the following classes are added:
 *  lto-upload-error-label: text for error messages
 *  lto-upload-file-label: upload file text
 *  lto-upload-file-extension-label: file extension text label
 *  lto-upload-size-label: file size text label
 *  lto-upload-text-label: upload file text label
 *  lto-upload: general CSS upload class
 *
 * @see {@link IRenderable}
 */
export declare class Upload implements IRenderable {
    private readonly spec;
    private errorSpan;
    private fileSpan;
    private dropArea;
    constructor(spec: ISpecification);
    /**
     * @inheritDoc
     */
    render(renderer: IRenderer, isNested: boolean): HTMLElement;
    doValidateAndGetBase64(file: File): void;
    doValidateCompressAndGetBase64(file: File): void;
    setSuccessClass(): void;
    removeSuccessClass(): void;
    setDataToValue(data: string, file: File): void;
    private compressImage;
    setFileNameToSpan(name: string): this;
    setErrorSpanTo(text: string): this;
    validateFile(size: number, extension?: string): boolean;
}
