import { Maybe } from '@dereekb/util';
import { FileArrayAcceptMatchConfig, FileArrayAcceptMatchResult } from './upload.accept';
import { DbxFileUploadActionCompatable } from './upload.action';
import { DbxButtonWorking } from '@dereekb/dbx-core';
import * as i0 from "@angular/core";
export interface DbxFileUploadFilesChangedEvent {
    readonly allFiles: File[];
    readonly matchResult: FileArrayAcceptMatchResult;
}
export declare abstract class AbstractDbxFileUploadComponent implements DbxFileUploadActionCompatable {
    /**
     * Whether or not multiple files can be uploaded.
     */
    readonly multiple: import("@angular/core").InputSignalWithTransform<Maybe<boolean>, Maybe<boolean | "">>;
    /**
     * Accepted file types filter.
     */
    readonly accept: import("@angular/core").InputSignal<string | import("./upload.accept").FileAcceptFilterTypeStringArray | import("./upload.accept").FileAcceptFunction>;
    /**
     * This disabled is input-only
     */
    readonly disabled: import("@angular/core").InputSignal<Maybe<boolean>>;
    /**
     * This working is input-only
     */
    readonly working: import("@angular/core").InputSignal<Maybe<import("@dereekb/dbx-core").DbxActionWorkOrWorkProgress>>;
    /**
     * This signal is set by setMultiple
     */
    private readonly _multipleSignal;
    /**
     * This signal is set by setAccept
     */
    private readonly _acceptSignal;
    /**
     * This signal is set by setDisabled
     */
    private readonly _disabledSignal;
    /**
     * This signal is set by setWorking
     */
    private readonly _workingSignal;
    readonly multipleSignal: import("@angular/core").Signal<Maybe<boolean>>;
    readonly acceptSignal: import("@angular/core").Signal<string | import("./upload.accept").FileAcceptFilterTypeStringArray | import("./upload.accept").FileAcceptFunction>;
    readonly disabledSignal: import("@angular/core").Signal<boolean>;
    readonly workingSignal: import("@angular/core").Signal<Maybe<import("@dereekb/dbx-core").DbxActionWorkOrWorkProgress>>;
    readonly isWorkingSignal: import("@angular/core").Signal<boolean>;
    setDisabled(disabled?: Maybe<boolean>): void;
    setWorking(working?: Maybe<DbxButtonWorking>): void;
    setMultiple(multiple?: Maybe<boolean>): void;
    setAccept(accept?: Maybe<FileArrayAcceptMatchConfig['accept']>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxFileUploadComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractDbxFileUploadComponent, never, never, { "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "working": { "alias": "working"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
