import type { ODataOptionsWithoutCount, OptionsToResponse } from 'pinejs-client-core'; import type { InjectedDependenciesParam, InjectedOptionsParam, Release, ReleaseAsset } from '..'; import type { ReleaseRawVersionApplicationPair } from './release'; type WriteReleaseAssetParams = Omit & { asset: File | string; }; type UploadProgressInfo = { total: number; uploaded: number; }; type UploadParams = { chunkSize?: number | undefined; parallelUploads?: number | undefined; overwrite?: boolean | undefined; onUploadProgress?: (progress: UploadProgressInfo) => void | Promise; }; type ReleaseAssetId = ReleaseAsset['Read']['id'] | { asset_key: ReleaseAsset['Read']['asset_key']; release: string | number | ReleaseRawVersionApplicationPair; }; declare const getReleaseAssetModel: (deps: InjectedDependenciesParam, opts: InjectedOptionsParam, getRelease: >(commitOrIdOrRawVersion: string | number | ReleaseRawVersionApplicationPair, options?: T) => Promise[number]>) => { getAllByRelease>(commitOrIdOrRawVersion: string | number | ReleaseRawVersionApplicationPair, options?: T): Promise>; get>(id: ReleaseAssetId, options?: T): Promise[number]>; download(id: ReleaseAssetId): Promise; upload(uploadParams: WriteReleaseAssetParams, { chunkSize, parallelUploads, overwrite, onUploadProgress, }?: UploadParams): Promise>; remove(id: ReleaseAssetId): Promise; }; export default getReleaseAssetModel;