import { Model } from 'sequelize-typescript';
import { EventType, ProcessInstanceState } from '@5minds/processcube_engine_sdk';
import { CorrelationModel, FlowNodeInstanceModel, ProcessDefinitionModel } from './index';
export declare class ProcessInstanceModel extends Model<ProcessInstanceModel> {
    correlationId: string;
    processInstanceId: string;
    processDefinitionId: string;
    processModelId: string;
    processModelName: string;
    processModelVersion: string;
    processModelHash: string;
    ownerId: string;
    ownerToken: string;
    startedByRootAccessToken: boolean;
    state: ProcessInstanceState;
    startEventId: string;
    startEventType?: EventType;
    startToken?: any;
    startTokenCompressed?: Buffer;
    endEventId?: string;
    endEventType?: EventType;
    endToken?: any;
    endTokenCompressed?: Buffer;
    error?: string;
    parentProcessInstanceId?: string;
    triggeredByFlowNodeInstanceId?: string;
    finishedAt?: Date;
    restartedAt?: Date;
    durationInMilliseconds?: number;
    terminatedByUserId?: string;
    createdAt?: Date;
    updatedAt?: Date;
    deleted: boolean;
    embeddedProcessModelId?: string;
    flowNodeInstances?: FlowNodeInstanceModel;
    processDefinition?: ProcessDefinitionModel;
    correlation?: CorrelationModel;
    processInstanceMetadata?: Array<ProcessInstanceMetadataModel>;
    triggeredByFlowNodeInstance?: FlowNodeInstanceModel;
}
export declare class ProcessInstanceMetadataModel extends Model<ProcessInstanceMetadataModel> {
    processInstanceId: string;
    flowNodeInstanceId: string;
    key: string;
    value: string;
    createdAt?: Date;
    updatedAt?: Date;
}
