import { LayerCollection } from '../../layer/index.js'; import { ConcurrentLimit } from '../ConcurrentManager/index.js'; import { AssetsManagerBase } from './base.js'; type UploadBeforeCallback = (payload: { file: File; id: string; controller: any; }) => Promise | boolean; type DownloadBeforeCallback = (payload: { url: string; id: string; controller: any; }) => void; type ProgressCallback = (payload: { progress: number; id: string; controller: any; }) => void; type ErrorCallback = (payload: { error: any; id: string; controller: any; }) => void; type SuccessCallback = (payload: { url: string; id: string; controller: any; }) => void; type CancelCallback = (payload: { id: string; controller: any; }) => void; type DownloadHandler = { onBefore?: DownloadBeforeCallback; onProgress?: ProgressCallback; onSuccess?: SuccessCallback; onCancel?: CancelCallback; onError?: ErrorCallback; }; type UploadHandler = { onBefore?: UploadBeforeCallback; onProgress?: ProgressCallback; onSuccess?: SuccessCallback; onCancel?: CancelCallback; onError?: ErrorCallback; }; type UpdateHandler = { (layer: LayerCollection, completed?: boolean): void; }; type AssetsManagerParams = { download: (url: string, id: string, handler?: DownloadHandler, params?: { [key: string]: any; }) => { run: () => Promise<{ file: File; }>; controller: any; }; upload: (file: File, id: string, handler?: UploadHandler, params?: { [key: string]: any; }) => { run: () => Promise<{ url: string; assetId: string; code: number; }>; controller: any; }; }; declare class AssetsManager extends AssetsManagerBase { protected params: T; constructor(params: T); downloadProxy(url: string, id: string, handler?: DownloadHandler, params?: { [key: string]: any; }): Promise<{ file: File; }>; uploadProxy(file: File, id: string, handler?: UploadHandler, params?: { [key: string]: any; }): Promise<{ url: string; assetId: string; code: number; }>; getDownloadQueue(): ConcurrentLimit; getUploadQueue(): ConcurrentLimit; getDownloadController(id: string): any; getUploadController(id: string): any; } export { AssetsManager }; export type { AssetsManagerParams, DownloadHandler, UpdateHandler, UploadHandler };