import { AssetBulkUploadCheckResponseDto, AssetMediaResponseDto } from "../dtos/asset-media-response.dto";
import { AssetBulkUploadCheckDto, AssetMediaCreateDto, AssetMediaOptionsDto, AssetMediaSize } from "../dtos/asset-media.dto";
import { AssetDownloadOriginalDto } from "../dtos/asset.dto";
import { AuthDto } from "../dtos/auth.dto";
import { AuthRequest } from "../middleware/auth.guard";
import { BaseService } from "./base.service";
import { UploadFile, UploadRequest } from "../types";
import { ImmichFileResponse } from "../utils/file";
export interface AssetMediaRedirectResponse {
    targetSize: AssetMediaSize | 'original';
}
export declare class AssetMediaService extends BaseService {
    getUploadAssetIdByChecksum(auth: AuthDto, checksum?: string): Promise<AssetMediaResponseDto | undefined>;
    canUploadFile({ auth, fieldName, file, body }: UploadRequest): true;
    getUploadFilename({ auth, fieldName, file, body }: UploadRequest): string;
    getUploadFolder({ auth, fieldName, file }: UploadRequest): string;
    onUploadError(request: AuthRequest, file: Express.Multer.File): Promise<void>;
    uploadAsset(auth: AuthDto, dto: AssetMediaCreateDto, file: UploadFile, sidecarFile?: UploadFile): Promise<AssetMediaResponseDto>;
    downloadOriginal(auth: AuthDto, id: string, dto: AssetDownloadOriginalDto): Promise<ImmichFileResponse>;
    viewThumbnail(auth: AuthDto, id: string, dto: AssetMediaOptionsDto): Promise<ImmichFileResponse | AssetMediaRedirectResponse>;
    playbackVideo(auth: AuthDto, id: string): Promise<ImmichFileResponse>;
    bulkUploadCheck(auth: AuthDto, dto: AssetBulkUploadCheckDto): Promise<AssetBulkUploadCheckResponseDto>;
    private addToSharedLink;
    private requireQuota;
}
