import { ElementRef, EventEmitter, OnChanges, OnInit } from "@angular/core";
import { BehaviorSubject } from "rxjs";
import { CssUtils } from "../utils";
import { FileData } from "./interfaces/file.interface";
import { FilesService } from "./services/files.services";
import { NgChanges } from "../typings/ng-onchange";
import * as i0 from "@angular/core";
interface FileInputProperties {
    name: string;
    mode: string;
    label: string;
    helperText: string;
    accept: string;
    multiple: boolean;
    showPreview: boolean;
    disabled: boolean;
    maxSize: number;
    minSize: number;
    margin: string;
    tabIndexValue: number;
    value: Array<FileData>;
}
export declare class DxcFileInputComponent implements OnChanges, OnInit {
    private utils;
    private service;
    fileInputNative: ElementRef;
    className: any;
    name: string;
    mode: string;
    label: string;
    helperText: string;
    value: Array<FileData>;
    accept: any;
    get multiple(): boolean;
    set multiple(value: boolean);
    private _multiple;
    get showPreview(): boolean;
    set showPreview(value: boolean);
    private _showPreview;
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    get minSize(): number;
    set minSize(value: number);
    private _minSize;
    get maxSize(): number;
    set maxSize(value: number);
    private _maxSize;
    margin: any;
    get tabIndexValue(): number;
    set tabIndexValue(value: number);
    private _tabIndexValue;
    hasShowError: boolean;
    callbackFile: EventEmitter<any>;
    defaultInputs: BehaviorSubject<FileInputProperties>;
    id: string;
    files: Array<FileData>;
    hoveringWithFile: boolean;
    filesLoaded: boolean;
    numberFiles: number;
    hasMultipleFiles: boolean;
    hasSingleFile: boolean;
    hasErrorSingleFile: boolean;
    hasValue: boolean;
    constructor(utils: CssUtils, service: FilesService);
    ngOnInit(): void;
    ngOnChanges(changes: NgChanges<DxcFileInputComponent>): void;
    ngAfterViewInit(): void;
    checkFileSize(file: File): "File size must be greater than min size." | "File size must be less than max size.";
    /**
     * File drop y drop zone
     * @param event
     */
    dragOver(event: any): void;
    /**
     * File drop y drop zone
     * @param event
     */
    dragLeave(event: any): void;
    /**
     * File drop y drop zone
     * @param event
     */
    drop(event: any): void;
    /**
     * Common function for both file modes.
     * @param event
     */
    onFileInput(event: any): void;
    /**
     * Common function for both file modes.
     * @param eventFiles
     */
    getPreviewsFiles(eventFiles: any): void;
    /**
     * Common function for both file modes.
     * @param file
     */
    getPreview(file: any): void;
    private isMultipleFilesPrintables;
    private isSingleFilesPrintables;
    private isErrorShow;
    /**
     * Define the type of file component. Just for styling
     * @param inputs
     * @returns
     */
    getModeStyle(inputs: FileInputProperties): string;
    /**
     * Just for file mode.
     * @param inputs
     * @returns
     */
    getFileStyle(): string;
    /**
     * Just for drop zone.
     * @param inputs
     * @returns
     */
    getDropZoneStyle(): string;
    /**
     * Just for drop zone.
     * @param inputs
     * @returns
     */
    getFileDropStyle(): string;
    /**
     * Common functionality for styling
     * @param inputs
     * @returns
     */
    getDynamicStyle(inputs: any): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxcFileInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxcFileInputComponent, "dxc-file-input", never, { "name": "name"; "mode": "mode"; "label": "label"; "helperText": "helperText"; "value": "value"; "accept": "accept"; "multiple": "multiple"; "showPreview": "showPreview"; "disabled": "disabled"; "minSize": "minSize"; "maxSize": "maxSize"; "margin": "margin"; "tabIndexValue": "tabIndexValue"; }, { "callbackFile": "callbackFile"; }, never, never>;
}
export {};
//# sourceMappingURL=dxc-file-input.component.d.ts.map