import { ElementRef, EventEmitter, TemplateRef } from '@angular/core';
import { CanDisable, CanDisableConstructor, IsGrouped, IsGroupedConstructor, IsRequired, IsRequiredConstructor, CanHideErrors, CanHideErrorsConstructor, HasError, HasErrorConstructor } from '@bravobit/bb-foundation';
import { ControlValueAccessor } from '@angular/forms';
import { BehaviorSubject } from 'rxjs';
declare class BbFilePickerBase {
}
declare const BbFilePickerMixinBase: IsRequiredConstructor & CanDisableConstructor & IsGroupedConstructor & HasErrorConstructor & CanHideErrorsConstructor & typeof BbFilePickerBase;
export declare class BbFilePicker extends BbFilePickerMixinBase implements ControlValueAccessor, IsRequired, CanDisable, IsGrouped, HasError, CanHideErrors {
    fileInput: ElementRef<HTMLInputElement>;
    extraTemplate: TemplateRef<ElementRef>;
    label: string | TemplateRef<any> | null;
    hint: string | TemplateRef<any> | null;
    accept: string | null;
    showImages: boolean;
    allowDragging: boolean;
    labelId: string;
    hovered: boolean;
    value$: BehaviorSubject<{
        file?: File;
    }>;
    value: File | null;
    valueChange: EventEmitter<File>;
    onDrag(event: Event, isHovered: boolean): void;
    onDrop(event: Event): void;
    onButtonPressed(file?: File): void;
    openFilePicker(): void;
    onFileChange(event: Event): void;
    onTouchedCallback: () => void;
    onChangeCallback: (_: File | null) => void;
    writeValue(value: File | null): void;
    registerOnChange(method: (_: File | null) => void): void;
    registerOnTouched(method: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    onErrorChange(error: {
        token: string;
        data?: any;
    } | null): void;
    private saveFile;
    private getFileListFromEvent;
    private preventDefault;
}
export {};
