import { ExternalTask, ExternalTaskState } from '@5minds/processcube_engine_sdk';
import { DatabaseAdapter } from './BaseDatabaseAdapter';
export declare class ExternalTaskDatabaseAdapter extends DatabaseAdapter {
    initialize(): Promise<void>;
    findByFlowNodeInstanceId(flowNodeInstanceId: string): Promise<ExternalTask<unknown>>;
    findByExternalTaskId(externalTaskId: string): Promise<ExternalTask<unknown>>;
    ensureExternalTaskForFlowNodeInstanceIdIsCreated<T>(data: {
        flowNodeInstanceId: string;
        topic: string;
        isSingleTry: boolean;
        externalTaskId?: string;
        state?: ExternalTaskState;
    }): Promise<ExternalTask<T>>;
    deleteExternalTaskByExternalTaskId(externalTaskId: string): Promise<void>;
    fetchAvailableForProcessing<TPayload>(topicNames: string | Array<string>, maxTasks: number, payloadFilter?: RegExp): Promise<Array<ExternalTask<TPayload>>>;
    lockForWorker(workerId: string, externalTaskIds: Array<string>, lockExpirationTime: Date): Promise<void>;
    unlockExternalTasks(externalTaskIds: Array<string>): Promise<void>;
    getExternalTasksWithActiveLock<TPayload>(): Promise<Array<ExternalTask<TPayload>>>;
    setExternalTaskLockExpired(externalTaskId: string): Promise<void>;
    private getJoinsForSelectQuery;
    private convertToRuntimeObject;
    private applyPayloadFilter;
    private tryParse;
}
