import type { StorageService, StorageServiceConfig, UploadResponse, UploadFileParams } from './types'; export declare class Storage implements StorageService { /** * Configuration passed in by consumer (with defaults) */ private readonly config; private readonly storageNodeSelector; private readonly logger; constructor(config: StorageServiceConfig); /** * Upload a file to a validator */ uploadFile({ file, onProgress, metadata }: UploadFileParams): { start: () => Promise; abort: (shouldTerminate?: boolean) => void; }; getUploadStatus(uploadId: string): Promise; /** * Generates a preview for a track at the given second offset * @param {Object} params * @param {string} params.cid - The CID of the track to generate a preview for * @param {number} params.secondOffset - The offset in seconds to start the preview from * @returns {Promise} The CID of the generated preview */ generatePreview({ cid, secondOffset }: { cid: string; secondOffset: number; }): Promise; /** * Works for both track transcode and image resize jobs * @param id ID of the transcode/resize job * @param maxPollingMs millis to stop polling and error if job is not done * @returns successful job info, or throws error if job fails / times out */ private pollProcessingStatus; /** * Gets the task progress given the task type and id associated with the job * @param id the id of the transcoding or resizing job * @returns the status, and the success or failed response if the job is complete */ private getProcessingStatus; }