/// <reference types="multer" />
import LRUCache from 'lru-cache';
import { Transaction } from 'sequelize/types';
import { ActivityPubActorType, ActorImageType } from '../../shared/models';
import { ACTOR_IMAGES_SIZE } from '../initializers/constants';
import { MAccountDefault, MActor, MChannelDefault } from '../types/models';
import { downloadImageFromWorker } from './worker/parent-process';
declare function buildActorInstance(type: ActivityPubActorType, url: string, preferredUsername: string): MActor;
declare function updateLocalActorImageFiles(accountOrChannel: MAccountDefault | MChannelDefault, imagePhysicalFile: Express.Multer.File, type: ActorImageType): Promise<import("../models/actor/actor-image").ActorImageModel[]>;
declare function deleteLocalActorImageFile(accountOrChannel: MAccountDefault | MChannelDefault, type: ActorImageType): Promise<import("../models/actor/actor-image").ActorImageModel[] & import("../models/actor/actor-image").ActorImageModel[]>;
declare function findAvailableLocalActorName(baseActorName: string, transaction?: Transaction): Promise<string>;
declare function downloadActorImageFromWorker(options: {
    fileUrl: string;
    filename: string;
    type: ActorImageType;
    size: typeof ACTOR_IMAGES_SIZE[ActorImageType][0];
}): Promise<Promise<void>>;
declare const actorImagePathUnsafeCache: LRUCache<string, string>;
export { actorImagePathUnsafeCache, updateLocalActorImageFiles, findAvailableLocalActorName, downloadActorImageFromWorker, deleteLocalActorImageFile, downloadImageFromWorker, buildActorInstance };
//# sourceMappingURL=local-actor.d.ts.map