import { Observable } from 'rxjs'; import { APIFile, LocalFile } from './drag-drop.models'; /** * Helper to extend the base file with {@link APIFile} defaults * @param file file base that will be extended with {@link APIFile} defaults * @param data extra data to override defaults */ export declare const extendFile: (file: File | undefined, ...data: Array & APIFile>>) => LocalFile & APIFile; /** * Checks if file matches allowed mime types * @param type file mime type * @param accept allowed mime types */ export declare const verifyAccept: (type: string, accept?: string) => boolean; /** * Determines if browser supports drag and drop */ export declare const isDragDropAvailable: () => boolean; /** * Pick only specified keys from a given object * @param keys keys to pick from a given object * @param object to extract keys from */ export declare const pick: (object: T, ...keys: K[]) => Pick; /** * Will retry running the observable when an error occurs to a maximum limit, increasing delay between executions. * @param options specifies number of retries, scaling duration and statuses to exclude */ export declare const retryStrategy: ({ maxRetryAttempts, scalingDuration, excludedStatusCodes, }?: { maxRetryAttempts?: number; scalingDuration?: number; excludedStatusCodes?: number[]; }) => (attempts: Observable) => Observable<0>;