import { EventEmitter } from '../../stencil-public-runtime';
export declare class CpslFileUpload {
    el: HTMLCpslFileUploadElement;
    private inputId;
    file?: File;
    dragOver?: boolean;
    dragError?: boolean;
    isUploading?: boolean;
    uploadError?: boolean;
    /**
     * If the input is disabled.
     * Default is: false.
     */
    disabled?: boolean;
    /**
     * Error text to show below the input. If this is provided the input will enter an error state.
     */
    errorText?: string;
    /**
     * Filename for the external source of the selected file.
     */
    externalFilename?: string;
    /**
     * External source for the selected file.
     */
    externalSrc?: string;
    /**
     * Valid file types.
     */
    fileTypes?: string[];
    /**
     * Helper text to show below the input. If `"errorText"` is provided that will take precedence.
     */
    helperText?: string;
    /**
     * The label for the input.
     */
    label?: string;
    /**
     * If `true`, the user must fill in a value before submitting a form.
     */
    required: boolean;
    /**
     * If `true`, the label will display an "optional" tag.
     */
    showOptionalLabel: boolean;
    /**
     * Function to trigger file upload to server.
     * Returns: boolean indicating success or failure.
     */
    uploadFile?: (file: File) => Promise<boolean>;
    /**
     * Emitted when the file is dropped in the input.
     */
    cpslOnDrop: EventEmitter<DragEvent>;
    /**
     * Emitted when the file drag enters the input.
     */
    cpslOnDragEnter: EventEmitter<DragEvent>;
    /**
     * Emitted when the file drag leaves the input.
     */
    cpslOnDragLeave: EventEmitter<DragEvent>;
    /**
     * Emitted when the file changes.
     */
    cpslFileChange: EventEmitter<File>;
    /**
     * Emitted when the file is removed.
     */
    cpslFileRemoved: EventEmitter<void>;
    private handleDrop;
    private handleDragEnter;
    private handleDragLeave;
    private handleInputChange;
    private isValidFile;
    private addFile;
    private removeFile;
    get inputEl(): HTMLInputElement;
    get FileContent(): any;
    render(): any;
}
