import { BulkIdsDto } from 'src/dtos/asset-ids.response.dto';
import { AssetVisibility } from 'src/enum';
import { AssetStats } from 'src/repositories/asset.repository';
export declare class DeviceIdDto {
    deviceId: string;
}
export declare class UpdateAssetBase {
    isFavorite?: boolean;
    visibility?: AssetVisibility;
    dateTimeOriginal?: string;
    latitude?: number;
    longitude?: number;
    rating?: number | null;
    description?: string;
}
export declare class AssetBulkUpdateDto extends UpdateAssetBase {
    ids: string[];
    duplicateId?: string | null;
    dateTimeRelative?: number;
    timeZone?: string;
}
export declare class UpdateAssetDto extends UpdateAssetBase {
    livePhotoVideoId?: string | null;
}
export declare class RandomAssetsDto {
    count?: number;
}
export declare class AssetBulkDeleteDto extends BulkIdsDto {
    force?: boolean;
}
export declare class AssetIdsDto {
    assetIds: string[];
}
export declare enum AssetJobName {
    REFRESH_FACES = "refresh-faces",
    REFRESH_METADATA = "refresh-metadata",
    REGENERATE_THUMBNAIL = "regenerate-thumbnail",
    TRANSCODE_VIDEO = "transcode-video"
}
export declare class AssetJobsDto extends AssetIdsDto {
    name: AssetJobName;
}
export declare class AssetStatsDto {
    visibility?: AssetVisibility;
    isFavorite?: boolean;
    isTrashed?: boolean;
}
export declare class AssetStatsResponseDto {
    images: number;
    videos: number;
    total: number;
}
export declare class AssetMetadataRouteParams {
    id: string;
    key: string;
}
export declare class AssetMetadataUpsertDto {
    items: AssetMetadataUpsertItemDto[];
}
export declare class AssetMetadataUpsertItemDto {
    key: string;
    value: object;
}
export declare class AssetMetadataBulkUpsertDto {
    items: AssetMetadataBulkUpsertItemDto[];
}
export declare class AssetMetadataBulkUpsertItemDto {
    assetId: string;
    key: string;
    value: object;
}
export declare class AssetMetadataBulkDeleteDto {
    items: AssetMetadataBulkDeleteItemDto[];
}
export declare class AssetMetadataBulkDeleteItemDto {
    assetId: string;
    key: string;
}
export declare class AssetMetadataResponseDto {
    key: string;
    value: object;
    updatedAt: Date;
}
export declare class AssetMetadataBulkResponseDto extends AssetMetadataResponseDto {
    assetId: string;
}
export declare class AssetCopyDto {
    sourceId: string;
    targetId: string;
    sharedLinks?: boolean;
    albums?: boolean;
    sidecar?: boolean;
    stack?: boolean;
    favorite?: boolean;
}
export declare class AssetDownloadOriginalDto {
    edited?: boolean;
}
export declare const mapStats: (stats: AssetStats) => AssetStatsResponseDto;
