import { ElementRef, EventEmitter, Injector, OnInit } from '@angular/core';
import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';
import { IFileService } from '../../../interfaces/file-service.interface';
import { OConfigureServiceArgs } from '../../../types/configure-service-args.type';
import { FormValueOptions } from '../../../types/form-value-options.type';
import { OFormDataComponent } from '../../o-form-data-component.class';
import { OFileItem } from './o-file-item.class';
import { OFileUploader } from './o-file-uploader.class';
import * as i0 from "@angular/core";
export declare const DEFAULT_INPUTS_O_FILE_INPUT: string[];
export declare const DEFAULT_OUTPUTS_O_FILE_INPUT: string[];
export declare class OFileInputComponent extends OFormDataComponent implements OnInit {
    arraySeparatorRegExp: RegExp;
    uploader: OFileUploader;
    fileService: IFileService;
    inputFile: ElementRef;
    autoBinding: boolean;
    autoRegistering: boolean;
    showInfo: boolean | string;
    multiple: boolean;
    splitUpload: boolean;
    acceptFileType: string;
    maxFileSize: number;
    maxFiles: number;
    onBeforeUpload: EventEmitter<any>;
    onBeforeUploadFile: EventEmitter<any>;
    onProgress: EventEmitter<any>;
    onProgressFile: EventEmitter<any>;
    onCancel: EventEmitter<any>;
    onCancelFile: EventEmitter<any>;
    onUpload: EventEmitter<any>;
    onUploadFile: EventEmitter<any>;
    onComplete: EventEmitter<any>;
    onCompleteFile: EventEmitter<any>;
    onError: EventEmitter<any>;
    onErrorFile: EventEmitter<any>;
    protected service: string;
    protected entity: string;
    protected serviceType: string;
    protected configureServiceArgs: OConfigureServiceArgs;
    constructor(elRef: ElementRef, injector: Injector);
    ngOnInit(): void;
    initialize(): void;
    configureService(): void;
    resolveValidators(): ValidatorFn[];
    fileSelected(event: Event): void;
    clearValue(options?: FormValueOptions, setDirty?: boolean): void;
    onClickUpload(e: Event): void;
    private _lastFileClick;
    openFileSelector(inputFile: HTMLInputElement): void;
    upload(): void;
    get files(): OFileItem[];
    get additionalData(): any;
    set additionalData(data: any);
    innerOnChange(event: any): void;
    protected filetypeValidator(control: AbstractControl): ValidationErrors;
    protected maxFileSizeValidator(control: AbstractControl): ValidationErrors;
    protected maxFilesValidator(control: AbstractControl): ValidationErrors;
    static ɵfac: i0.ɵɵFactoryDeclaration<OFileInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OFileInputComponent, "o-file-input", never, { "acceptFileType": { "alias": "accept-file-type"; "required": false; }; "maxFileSize": { "alias": "max-file-size"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "maxFiles": { "alias": "max-files"; "required": false; }; "showInfo": { "alias": "show-info"; "required": false; }; "splitUpload": { "alias": "split-upload"; "required": false; }; "additionalData": { "alias": "additional-data"; "required": false; }; "service": { "alias": "service"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; "serviceType": { "alias": "service-type"; "required": false; }; "configureServiceArgs": { "alias": "configure-service-args"; "required": false; }; }, { "onBeforeUpload": "onBeforeUpload"; "onBeforeUploadFile": "onBeforeUploadFile"; "onProgress": "onProgress"; "onProgressFile": "onProgressFile"; "onCancel": "onCancel"; "onCancelFile": "onCancelFile"; "onUpload": "onUpload"; "onUploadFile": "onUploadFile"; "onComplete": "onComplete"; "onCompleteFile": "onCompleteFile"; "onError": "onError"; "onErrorFile": "onErrorFile"; }, never, never, true, never>;
}
