import { EventEmitter, ChangeDetectorRef, AfterViewInit, OnInit, OnDestroy } from '@angular/core';
import { SdNotifyService } from '@sd-angular/core/notify';
import { SdTranslateService } from '@sd-angular/core/translate';
import { ErrorStateMatcher } from '@angular/material/core';
import { FormControl, FormGroupDirective, NgForm, ValidatorFn } from '@angular/forms';
declare class SdInputUploadFiletStateMatcher implements ErrorStateMatcher {
    private formControl;
    constructor(formControl: FormControl);
    isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;
}
export declare class SdInputUploadFile implements OnInit, AfterViewInit, OnDestroy {
    #private;
    private ref;
    private notifyService;
    private translateService;
    id: string;
    previewFiles: SdPreviewFile[];
    label: string;
    placeholder: string;
    type: 'image' | 'file';
    extensions: string[];
    min: number;
    max: number;
    maxSize: number;
    maxWidth: number;
    maxHeight: number;
    set disabled(val: boolean | '');
    set model(model: (string | SdPreviewFile)[]);
    disableErrorMessage: boolean;
    set _disableErrorMessage(val: boolean | '');
    inlineError: string;
    set _inlineError(val: string);
    isRequired: boolean;
    set required(val: boolean | '');
    modelChange: EventEmitter<(string | SdPreviewFile)[]>;
    sdChange: EventEmitter<(string | SdPreviewFile)[]>;
    inputControl: FormControl;
    formControl: FormControl;
    matcher: SdInputUploadFiletStateMatcher;
    constructor(ref: ChangeDetectorRef, notifyService: SdNotifyService, translateService: SdTranslateService);
    ngOnInit(): void;
    customInlineErrorValidator(): ValidatorFn;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onUpload: () => void;
    onRemove: (previewFile: SdPreviewFile) => void;
}
export interface SdPreviewFile {
    file: File;
    src: string | ArrayBuffer;
    fileName?: string;
    extension?: string;
}
export {};
