import { Identity, Model } from '@5minds/processcube_engine_sdk';
import { ProcessDefinitionDatabaseAdapter } from './DatabaseAdaptersSequelize/index';
import { IamService } from './Iam/index';
export declare class ProcessDefinitionMediator {
    private readonly bpmnModelParser;
    private readonly definitionsCache;
    private readonly iamService;
    private readonly logger;
    private readonly processDefinitionDatabaseAdapter;
    constructor(iamService: IamService, processDefinitionAdapter: ProcessDefinitionDatabaseAdapter);
    persistProcessDefinitions(identity: Identity, xml: string | Array<string>, overwriteExisting?: boolean): Promise<void>;
    getAll(identity: Identity, offset?: number, limit?: number, includeCount?: boolean): Promise<Array<Model.Definitions>>;
    getDefinitionsWithRunningInstances(identity: Identity, processModelIds?: string | Array<string>): Promise<Array<Model.Definitions>>;
    getByName(identity: Identity, name: string): Promise<Model.Definitions>;
    getByHash(identity: Identity, hash: string, includeDeleted?: boolean): Promise<Model.Definitions>;
    getByProcessModelId(identity: Identity, processModelId: string): Promise<Model.Definitions>;
    deleteById(processDefinitionId: string, deleteAllRelatedData: boolean): Promise<void>;
    setIsExecutableFlagForProcessModel(processModelId: string, isExecutable: boolean): Promise<void>;
    private applyFlagsToProcessDefinition;
    private getFlagsForProcessModels;
    private parseAndValidateDefinition;
    private parseProcessDefinition;
    private filterInaccessibleProcessDefinitions;
    private filterInaccessibleProcessModels;
    private filterInaccessibleProcessModelElements;
    private filterOutInaccessibleLanes;
    private getFlowNodesForLaneSet;
    private isUserAnAdminOrObserver;
}
