import { ElementRef, Injector, type OnChanges, type SimpleChanges } from '@angular/core';
import { NgxDropzonePreviewComponent } from '../ngx-dropzone-preview/ngx-dropzone-preview.component';
import type { RejectedFile } from './ngx-dropzone.service';
import * as i0 from "@angular/core";
export interface NgxDropzoneChangeEvent {
    source: NgxDropzoneComponent;
    addedFiles: File[];
    rejectedFiles: RejectedFile[];
}
export declare class NgxDropzoneComponent implements OnChanges {
    readonly injector: Injector;
    /** A list of the content-projected preview children. */
    readonly previewChildren: import("@angular/core").Signal<readonly NgxDropzonePreviewComponent[]>;
    protected readonly hasPreviews: import("@angular/core").Signal<boolean>;
    /** A template reference to the native file input element. */
    readonly fileInput: import("@angular/core").Signal<ElementRef<HTMLInputElement>>;
    /** Emitted when any files were added or rejected. */
    readonly change: import("@angular/core").OutputEmitterRef<NgxDropzoneChangeEvent>;
    /** Set the accepted file types. Defaults to '*'. */
    readonly accept: import("@angular/core").InputSignal<string>;
    /** Disable any user interaction with the component. */
    readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    /** Allow the selection of multiple files. */
    readonly multiple: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    /** Set the maximum size a single file may have. */
    readonly maxFileSize: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
    /** Allow the dropzone container to expand vertically. */
    readonly expandable: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    /** Open the file selector on click. */
    readonly disableClick: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    /** Allow dropping directories. */
    readonly processDirectoryDrop: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    /** Expose the id, aria-label, aria-labelledby and aria-describedby of the native file input for proper accessibility. */
    readonly id: import("@angular/core").InputSignal<string>;
    readonly ariaLabel: import("@angular/core").InputSignal<string>;
    readonly ariaLabelledby: import("@angular/core").InputSignal<string>;
    readonly ariaDescribedBy: import("@angular/core").InputSignal<string>;
    protected readonly isHovered: import("@angular/core").WritableSignal<boolean>;
    ngOnChanges(changes: SimpleChanges): void;
    /** Show the native OS file explorer to select files. */
    _onClick(): void;
    _onDragOver(event: DragEvent): void;
    _onDragLeave(): void;
    _onDrop(event: DragEvent): void;
    showFileSelector(): void;
    _onFilesSelected(event: Event): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxDropzoneComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxDropzoneComponent, "ngx-dropzone, [ngx-dropzone]", never, { "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "disableClick": { "alias": "disableClick"; "required": false; "isSignal": true; }; "processDirectoryDrop": { "alias": "processDirectoryDrop"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaDescribedBy": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; }, { "change": "change"; }, ["previewChildren"], ["ngx-dropzone-label", "ngx-dropzone-preview", "*"], true, never>;
}
