import * as i0 from '@angular/core'; import { ElementRef, OnInit, Renderer2, InjectionToken } from '@angular/core'; import * as flowjs$1 from 'flowjs'; import * as _flowjs_ngx_flow from '@flowjs/ngx-flow'; import { ReplaySubject, Subject, Observable } from 'rxjs'; declare class FlowButton { protected el: ElementRef; protected _directoryOnly: boolean; set flowDirectoryOnly(directoriesOnly: boolean); protected _attributes?: object; set flowAttributes(attributes: object); protected _flow?: flowjs.Flow; set flow(flow: flowjs.Flow); setup(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class FlowDrop implements OnInit { protected el: ElementRef; protected renderer: Renderer2; protected flowJs?: flowjs.Flow; set flow(flow: flowjs.Flow); enable(): void; disable(): void; ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } interface Transfer { id: string; name: string; flowFile: flowjs.FlowFile; progress: number; error: boolean; paused: boolean; success: boolean; complete: boolean; currentSpeed: number; averageSpeed: number; size: number; timeRemaining: number; } declare class FlowSrc { private el; protected fileReader: any; set flowSrc(transfer: Transfer); static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } interface UploadState { transfers: Transfer[]; totalProgress: number; flow: flowjs.Flow; } interface FlowChangeEvent { type: T; event: flowjs$1.FlowEventFromEventName; } interface NgxFlowEvent { type: 'pauseOrResume' | 'newFlowJsInstance'; } declare class FlowConfig { protected flowConstructor: _flowjs_ngx_flow.FlowConstructor; protected platform: Object; set flowConfig(options: flowjs$1.FlowOptions); flowJs: flowjs$1.Flow; protected flow$: ReplaySubject; pauseOrResumeEvent$: Subject; events$: Observable | NgxFlowEvent>; transfers$: Observable; somethingToUpload$: Observable; private flowEvents; private ngxFlowEvents; upload(): void; cancel(): void; cancelFile(file: Transfer): void; pauseFile(file: Transfer): void; resumeFile(file: Transfer): void; protected listenForEvent>(flow: flowjs$1.Flow, eventName: T): Observable<{ type: T; event: R; }>; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } type FlowConstructor = new (flowOptions: flowjs.FlowOptions) => flowjs.Flow; declare const FlowInjectionToken: InjectionToken; declare class NgxFlowModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { FlowButton, FlowConfig, FlowDrop, FlowInjectionToken, FlowSrc, NgxFlowModule }; export type { FlowChangeEvent, FlowConstructor, NgxFlowEvent, Transfer, UploadState };