import { SystemConfigTemplateStorageOptionDto } from "../dtos/system-config.dto";
import { JobName, JobStatus } from "../enum";
import { ArgOf } from "../repositories/event.repository";
import { BaseService } from "./base.service";
import { JobOf, StorageAsset } from "../types";
export interface MoveAssetMetadata {
    storageLabel: string | null;
    filename: string;
}
export declare class StorageTemplateService extends BaseService {
    private _template;
    private get template();
    onConfigInit({ newConfig }: ArgOf<'ConfigInit'>): void;
    onConfigUpdate({ newConfig }: ArgOf<'ConfigUpdate'>): void;
    onConfigValidate({ newConfig }: ArgOf<'ConfigValidate'>): void;
    getStorageTemplateOptions(): SystemConfigTemplateStorageOptionDto;
    onAssetMetadataExtracted({ source, assetId }: ArgOf<'AssetMetadataExtracted'>): Promise<void>;
    handleMigrationSingle({ id }: JobOf<JobName.StorageTemplateMigrationSingle>): Promise<JobStatus>;
    handleMigration(): Promise<JobStatus>;
    handleMoveHistoryCleanup({ assetId }: ArgOf<'AssetDelete'>): Promise<void>;
    moveAsset(asset: StorageAsset, metadata: MoveAssetMetadata, stillPhoto?: StorageAsset): Promise<void>;
    private getTemplatePath;
    private compile;
    private render;
}
