import { EventEmitter } from "../../stencil-public-runtime";
import { CropperOptions } from "../x-cropper/component";
export declare class XInputFile {
    /**
     * Element ID for internal reference
     */
    private readonly inputId;
    /**
     * Native input element
     */
    private input;
    /**
     * Cropper options
     */
    private cropperOpcions;
    /**
     * Element input name for forms keys
     */
    name?: string;
    /**
     * Element input placeholder text
     */
    placeholder?: string;
    /**
     * Element expected file type in file upload controls
     */
    accept?: string;
    /**
     * Element media capture input method in file upload controls
     */
    capture?: string;
    /**
     * Element input information block
     */
    info?: string;
    /**
     * Element input maximun file size
     */
    maxsize?: number;
    /**
     * Element image maximun width size
     */
    maxWidth?: string;
    /**
     * Element image maximun height size
     */
    maxHeight?: string;
    /**
     * Element input required for forms validations
     */
    required: boolean;
    /**
     * Element show loading and block for edit
     */
    loading: boolean;
    /**
     * Element prevent show preview on change
     */
    withoutPreview: boolean;
    /**
     * Element disabled state
     */
    disabled: boolean;
    /**
     * Element input value
     */
    value?: File | null;
    isValid: boolean;
    /**
     * Element loading state
     */
    isLoading: boolean;
    /**
     * Input diabled state
     */
    isDisabled: boolean;
    /**
     * Input drag enter state
     */
    isDragging: boolean;
    /**
     * Element child cropper
     */
    cropper: HTMLXCropperElement;
    /**
     * On validate input event
     */
    onValidateInputEvent: EventEmitter<ElementInternals>;
    /**
     * On input load file
     */
    onFileInputEvent: EventEmitter<File>;
    /**
     * Element reference
     */
    el: HTMLElement;
    /**
     * Element internal
     */
    internals: ElementInternals;
    /**
     * On value attribute change
     *
     * @param value
     */
    watchValue(value: string): void;
    /**
     * Element event on slot make changes
     *
     * @param evt
     */
    handleSlotChange(): void;
    /**
     * Define cropper options
     */
    setCropperOptions(options: CropperOptions): Promise<void>;
    /**
     * This is called when the 'disabled' attribute of the element or or an ancestor <fieldset> is updated
     *
     * @param disabled
     */
    formDisabledCallback(disabled: boolean): void;
    /**
     * This is called when the parent/owner form is reset
     */
    formResetCallback(): void;
    /**
     * This is called when the input is validated
     */
    formValidateCallback(dispatchValidation?: boolean): void;
    /**
     * This is called on component before load
     */
    componentWillLoad(): void;
    /**
     * This is called on component did load
     */
    componentDidLoad(): void;
    /**
     * Update the child cropper and render the result
     */
    computeChildCropper(): void;
    /**
     * This called on input field is changed
     */
    onChangeInput(): void;
    /**
     * This called on file is dragged to upload zone
     */
    onDragEnter(): void;
    /**
     * This called on file is leave the upload zone
     */
    onDragLeave(): void;
    /**
     * Render component
     */
    render(): any;
}
