import { StorageCopySource, StorageCopyDestination } from './Storage'; export interface StorageProvider { cancel?(request: Promise): void; copy?(src: StorageCopySource, dest: StorageCopyDestination, config?: any): Promise; configure(config: object): object; get(key: string, options?: any): Promise; put(key: string, object: any, options?: any): Promise | UploadTask; remove(key: string, options?: any): Promise; list(path: any, options?: any): Promise; getCategory(): string; getProviderName(): string; } export interface UploadTask { resume(): any; pause(): any; percent: number; isInProgress: boolean; } export interface StorageProviderWithCopy extends StorageProvider { copy(src: StorageCopySource, dest: StorageCopyDestination, config?: any): Promise; } export declare type StorageProviderApi = 'copy' | 'get' | 'put' | 'remove' | 'list';