import { Transaction } from 'sequelize';
import { Cronjob, CronjobQuery, CronjobSortSettings, DeployedCronjobList } from '@5minds/processcube_engine_sdk';
import { DatabaseAdapter } from './BaseDatabaseAdapter';
export declare class CronjobDatabaseAdapter extends DatabaseAdapter {
    initialize(): Promise<void>;
    create(processDefinitionId: string, processModelId: string, flowNodeId: string, enabled: boolean, crontab: string, nextTriggerDate?: Date): Promise<void>;
    update(processModelId: string, flowNodeId: string, enabled: boolean, crontab?: string, nextTriggerDate?: Date): Promise<void>;
    updateTriggerDates(processModelId: string, flowNodeId: string, lastTriggerDate: Date, nextTriggerDate: Date): Promise<void>;
    query(query: CronjobQuery, offset: number, limit: number, sort: CronjobSortSettings, includeCount?: boolean): Promise<DeployedCronjobList>;
    static deleteByProcessDefinitionId(processDefinitionId: string | Array<string>, transaction?: Transaction): Promise<void>;
    getCronjob(processModelId: string, flowNodeId: string): Promise<Cronjob>;
    getActiveCronjobs(): Promise<Array<Cronjob>>;
    getActiveCronjobsForProcessDefinition(processDefinitionId: string): Promise<Array<Cronjob>>;
    private getCronjobsWithCount;
    private getCronjobsWithoutCount;
    private mapCronjobToRuntimeObject;
    private buildCronjobWhereClause;
}
