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<string>;
    };
}
