import { JobName, JobStatus } from "../enum";
import { BaseService } from "./base.service";
import { JobOf, VideoInterfaces } from "../types";
export declare class MediaService extends BaseService {
    videoInterfaces: VideoInterfaces;
    onBootstrap(): Promise<void>;
    handleQueueGenerateThumbnails({ force }: JobOf<JobName.AssetGenerateThumbnailsQueueAll>): Promise<JobStatus>;
    handleQueueMigration(): Promise<JobStatus>;
    handleAssetMigration({ id }: JobOf<JobName.AssetFileMigration>): Promise<JobStatus>;
    handleAssetEditThumbnailGeneration({ id }: JobOf<JobName.AssetEditThumbnailGeneration>): Promise<JobStatus>;
    handleGenerateThumbnails({ id }: JobOf<JobName.AssetGenerateThumbnails>): Promise<JobStatus>;
    private extractImage;
    private decodeImage;
    private extractOriginalImage;
    private generateImageThumbnails;
    handleGeneratePersonThumbnail({ id }: JobOf<JobName.PersonGenerateThumbnail>): Promise<JobStatus>;
    private getCrop;
    private generateVideoThumbnails;
    handleQueueVideoConversion(job: JobOf<JobName.AssetEncodeVideoQueueAll>): Promise<JobStatus>;
    handleVideoConversion({ id }: JobOf<JobName.AssetEncodeVideo>): Promise<JobStatus>;
    private getTranscodeTarget;
    private isAudioTranscodeRequired;
    private isVideoTranscodeRequired;
    private isRemuxRequired;
    isSRGB({ colorspace, profileDescription, bitsPerSample, }: {
        colorspace: string | null;
        profileDescription: string | null;
        bitsPerSample: number | null;
    }): boolean;
    private parseBitrateToBps;
    private shouldUseExtractedImage;
    private syncFiles;
    private generateEditedThumbnails;
    private warnOnTransparencyLoss;
    private getImageFile;
}
