import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { FileDropArea } from '../file-drop-area/file-drop-area.directive';
import * as i0 from "@angular/core";
/**
 * A file picker component.
 *
 * ```html
 * <gtx-file-picker (fileSelect)="uploadFiles($event)"></gtx-file-picker>
 * ```
 */
export declare class FilePicker implements OnInit, OnDestroy {
    dropArea: FileDropArea;
    private cd;
    /**
     * Sets the file picker button to be auto-focused. Handled by `AutofocusDirective`.
     */
    autofocus: boolean;
    /**
     * Set to a non-false value to disable the file picker. Defaults to `false` if absent.
     */
    get disabled(): boolean;
    set disabled(value: boolean);
    /**
     * Set to a falsy value to disable picking multiple files at once. Defaults to `true` if absent.
     */
    get multiple(): boolean;
    set multiple(value: boolean);
    /**
     * Provides feedback for accepted file types, if supported by the browser. Defaults to `"*"`.
     */
    get accept(): string;
    set accept(value: string);
    /**
     * Button size - "small", "regular" or "large". Forwarded to the Button component.
     */
    get size(): 'small' | 'regular' | 'large';
    set size(val: 'small' | 'regular' | 'large');
    /**
     * Display the button as a flat button or not. Forwarded to the Button component.
     */
    get flat(): boolean;
    set flat(val: boolean);
    /**
     * Sets the type of the button. Forwarded to the Button component.
     */
    type: 'primary' | 'secondary' | 'success' | 'warning' | 'alert';
    /**
     * Icon button without text. Forwarded to the Button component.
     */
    get icon(): boolean;
    set icon(val: boolean);
    /**
     * Triggered when a file / files are selected via the file picker.
     */
    fileSelect: EventEmitter<File[]>;
    /**
     * Triggered when a file / files are selected but do not fit the "accept" option.
     */
    fileSelectReject: EventEmitter<File[]>;
    inputAccept: string;
    private _icon;
    private _size;
    private _flat;
    private _accept;
    private _disabled;
    private _multiple;
    private _subscriptions;
    constructor(dropArea: FileDropArea, cd: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    onChange(event: Event, input: HTMLInputElement): void;
    private setDropAreaOptions;
    static ɵfac: i0.ɵɵFactoryDeclaration<FilePicker, [{ optional: true; self: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FilePicker, "gtx-file-picker", never, { "autofocus": "autofocus"; "disabled": "disabled"; "multiple": "multiple"; "accept": "accept"; "size": "size"; "flat": "flat"; "type": "type"; "icon": "icon"; }, { "fileSelect": "fileSelect"; "fileSelectReject": "fileSelectReject"; }, never, ["*"]>;
}
