import { AssetsServerBase } from './AssetsServerBase';
import { AssetsServerAdmin } from './AssetsServerAdmin';
import { AssetsServerAPI } from './AssetsServerAPI';
import { AssetsConfig } from './AssetsConfig';
import { BrowseResponse, CheckoutResponse, CreateAuthKeyResponse, HistoryResponse, HitResponse, LocalizationResponse, ProcessResponse, ProcessStartResponse, ProfileResponse, SearchResponse } from './interfaces/Response/Service';
import { BrowseRequest, CheckoutRequest, CollectionRequest, CopyRequest, CreateAuthKeyRequest, CreateFolderRequest, CreateRelationRequest, CreateRequest, DownloadFromIdRequest, HistoryRequest, LocalizationRequest, LogUsageRequest, MetadataReportRequest, MoveRequest, PromoteRequest, RemoveRelationRequest, RemoveRequest, RevokeAuthKeysRequest, SearchRequest, SendEmailRequest, UndoCheckoutRequest, UpdateAuthKeyRequest, UpdateBulkRequest, UpdateRequest } from './interfaces/Request/Service';
export declare class AssetsServer extends AssetsServerBase {
    private tmpDir;
    readonly admin: AssetsServerAdmin;
    readonly api: AssetsServerAPI;
    constructor(config: AssetsConfig);
    browse(req: BrowseRequest): Promise<BrowseResponse[]>;
    checkout(req: CheckoutRequest): Promise<CheckoutResponse>;
    undoCheckout(req: UndoCheckoutRequest): Promise<void>;
    copy(req: CopyRequest & {}): Promise<ProcessResponse>;
    copy(req: CopyRequest & {
        asyncFlag?: false;
    }): Promise<ProcessResponse>;
    copy(req: CopyRequest & {
        asyncFlag: true;
    }): Promise<ProcessStartResponse>;
    createAuthKey(req: CreateAuthKeyRequest): Promise<CreateAuthKeyResponse>;
    updateAuthKey(req: UpdateAuthKeyRequest): Promise<void>;
    revokeAuthKeys(req: RevokeAuthKeysRequest): Promise<void>;
    search(req: SearchRequest): Promise<SearchResponse>;
    move(req: MoveRequest & {}): Promise<ProcessResponse>;
    move(req: MoveRequest & {
        asyncFlag?: false;
    }): Promise<ProcessResponse>;
    move(req: MoveRequest & {
        asyncFlag: true;
    }): Promise<ProcessStartResponse>;
    update(req: UpdateRequest): Promise<void>;
    updateBulk(req: UpdateBulkRequest & {}): Promise<ProcessResponse>;
    updateBulk(req: UpdateBulkRequest & {
        asyncFlag?: false;
    }): Promise<ProcessResponse>;
    updateBulk(req: UpdateBulkRequest & {
        asyncFlag: true;
    }): Promise<ProcessStartResponse>;
    remove(req: RemoveRequest & {}): Promise<ProcessResponse>;
    remove(req: RemoveRequest & {
        asyncFlag?: false;
    }): Promise<ProcessResponse>;
    remove(req: RemoveRequest & {
        asyncFlag: true;
    }): Promise<ProcessStartResponse>;
    create(req: CreateRequest): Promise<HitResponse>;
    createFolder(req: CreateFolderRequest): Promise<Record<string, string>>;
    createRelation(req: CreateRelationRequest): Promise<void>;
    removeRelation(req: RemoveRelationRequest): Promise<ProcessResponse>;
    sendEmail(req: SendEmailRequest): Promise<void>;
    localization(req: LocalizationRequest): Promise<LocalizationResponse>;
    logUsage(req: LogUsageRequest): Promise<void>;
    removeFromCollection(req: CollectionRequest): Promise<void>;
    addToCollection(req: CollectionRequest): Promise<void>;
    history(req: HistoryRequest): Promise<HistoryResponse>;
    promote(req: PromoteRequest): Promise<void>;
    getMetadataReport(req: MetadataReportRequest): Promise<string>;
    profile(): Promise<ProfileResponse>;
    downloadFromId(req: DownloadFromIdRequest): Promise<string>;
    downloadPreviewFromId(req: DownloadFromIdRequest): Promise<string>;
    private ensureTmpDir;
    private prepareFiledataStream;
}
