import { type ProgressHandler } from '../../services'; import type { CrossPlatformFile } from '../../types/File'; import type { UploadsApiServicesConfig } from './types'; export declare class UploadsApi { private readonly storage; constructor(services: UploadsApiServicesConfig); /** * Creates an audio file upload task that uploads to a validator and returns * the resulting CIDs and analysis metadata. * * Optionally accepts a callback for tracking upload progress, a list of * placement hosts to prefer for storage, and a start time in seconds * for generating a preview clip. */ createAudioUpload({ file, onProgress, previewStartSeconds, placementHosts }: { file: CrossPlatformFile; onProgress?: ProgressHandler; placementHosts?: string[]; previewStartSeconds?: number; }): { abort: (shouldTerminate?: boolean | undefined) => void; start: () => Promise<{ trackCid: string | undefined; previewCid: string | undefined; origFileCid: string; origFilename: string; duration: number; bpm: number | undefined; musicalKey: string | undefined; }>; }; /** * Creates an image upload task that uploads to a validator and returns the * resulting CID. * * Optionally accepts a callback for tracking upload progress, a list of * placement hosts to prefer for storage, and a boolean indicating whether * the image is a backdrop (as opposed to square, e.g. for profile banners). */ createImageUpload({ file, onProgress, isBackdrop, placementHosts }: { file: CrossPlatformFile; onProgress?: ProgressHandler; isBackdrop?: boolean; placementHosts?: string[]; }): { abort: (shouldTerminate?: boolean | undefined) => void; start: () => Promise; }; }