/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { HttpClient } from '@angular/common/http';
import { EventEmitter } from '@angular/core';
import { AsyncSettings } from './types/async-settings';
import { FileInfo } from './types';
import { FileMap } from './types/file-map';
import { CancelEvent, ClearEvent, ErrorEvent, PauseEvent, RemoveEvent, ResumeEvent, SelectEvent, SuccessEvent, UploadEvent, UploadProgressEvent } from './events';
import { ChunkSettings } from './types';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export type ComponentType = 'FileSelect' | 'Upload';
/**
 * @hidden
 */
export declare class UploadService {
    private http;
    cancelEvent: EventEmitter<CancelEvent>;
    clearEvent: EventEmitter<ClearEvent>;
    completeEvent: EventEmitter<any>;
    errorEvent: EventEmitter<ErrorEvent>;
    pauseEvent: EventEmitter<PauseEvent>;
    removeEvent: EventEmitter<RemoveEvent>;
    resumeEvent: EventEmitter<ResumeEvent>;
    selectEvent: EventEmitter<SelectEvent>;
    successEvent: EventEmitter<SuccessEvent>;
    uploadEvent: EventEmitter<UploadEvent>;
    uploadProgressEvent: EventEmitter<UploadProgressEvent>;
    /**
     * Required for the `ControlValueAccessor` integration
     */
    changeEvent: EventEmitter<Array<FileInfo>>;
    /**
     * Default async settings
     */
    async: AsyncSettings;
    /**
     * Default chunk settings
     */
    chunk: ChunkSettings;
    component: ComponentType;
    private chunkMap;
    private fileList;
    constructor(http: HttpClient);
    get files(): FileMap;
    setChunkSettings(settings: ChunkSettings | boolean): void;
    onChange(): void;
    addFiles(files: Array<FileInfo>): void;
    addInitialFiles(initialFiles: Array<FileInfo>): void;
    addInitialFileSelectFiles(initialFiles: Array<any>): void;
    resumeFile(uid: string): void;
    pauseFile(uid: string): void;
    removeFiles(uid: string): void;
    cancelFiles(uid: string): void;
    clearFiles(): void;
    uploadFiles(): void;
    retryFiles(uid: string): void;
    private _uploadFiles;
    private performRemove;
    private performUpload;
    private onSuccess;
    private onError;
    private onProgress;
    private onChunkProgress;
    private checkAllComplete;
    private shouldUploadNextFile;
    private areAllSelectedFilesHandled;
    private cloneRequestHeaders;
    private populateRequestOptions;
    private populateUploadFormData;
    private populateRemoveFormData;
    private populateClientFormData;
    private getNextChunk;
    private getChunkInfo;
    private updateChunkInfo;
    private removeChunkInfo;
    private getChunkMetadata;
    private isChunkUploadComplete;
    static ɵfac: i0.ɵɵFactoryDeclaration<UploadService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<UploadService>;
}
