import { Transaction } from 'sequelize';
import { DataObjectInstanceList, DataObjectInstanceQuery, DataObjectSortSettings } from '@5minds/processcube_engine_sdk';
import { StoreDataObjectValueRequest } from '../../Contracts/InternalDataModels/index';
import { DatabaseAdapter } from './BaseDatabaseAdapter';
export declare class DataObjectInstanceDatabaseAdapter extends DatabaseAdapter {
    initialize(): Promise<void>;
    storeValue<TValue extends object>(request: StoreDataObjectValueRequest<TValue>): Promise<void>;
    query(query: DataObjectInstanceQuery, offset?: number, limit?: number, sort?: DataObjectSortSettings, includeCount?: boolean): Promise<DataObjectInstanceList>;
    queryCount(query: DataObjectInstanceQuery): Promise<number>;
    deleteByProcessDefinitionId(processDefinitionId: string): Promise<void>;
    static deleteByProcessDefinitionId(processDefinitionId: string, deleteTransaction: Transaction): Promise<void>;
    private validateCreateRequest;
    private getDataObjectsWithCount;
    private getDataObjectsWithoutCount;
    private convertToRuntimeDataObject;
    private deserializeDataObjectValue;
}
