import { InjectionToken } from '@angular/core';
export interface ISdUploadFileConfiguration<TArgs = any> {
    upload: SdUploadFileFuncUpload<TArgs>;
    details: SdUploadFileFuncDetails<TArgs>;
    download?: SdUploadFileFuncDownload<TArgs>;
}
export declare const SD_UPLOAD_FILE_CONFIG: InjectionToken<ISdUploadFileConfiguration<any>>;
export type SdUploadFileFuncUpload<TArgs> = (files: File[], args?: TArgs) => Promise<string[]>;
export type SdUploadFileFuncDetails<TArgs> = (idOrKey: (string | number)[], args?: TArgs) => Promise<SdUploadFileDetail[]>;
export type SdUploadFileFuncDownload<TArgs> = (idOrKey: string | number, args?: TArgs) => Promise<void>;
export interface SdUploadFileDetail {
    idOrKey: string;
    cdn: string;
    name?: string;
    extension?: string;
    size?: number;
}
