import { CronjobEventMessage, ProcessDeploymentMessage, ProcessIsExecutableChangedMessage } from '@5minds/processcube_engine_sdk';
import { EventMessageInternal, ExternalTaskCreatedMessageInternal, ExternalTaskExpiredMessageInternal, ExternalTaskLockedMessageInternal, ExternalTaskUnlockedMessageInternal, KillProcessInstanceMessageInternal, ProcessDeploymentMessageInternal, UserTaskFinishedMessageInternal } from './Payloads/index';
export type OnProcessDeployedCallback = (message: ProcessDeploymentMessageInternal) => void | Promise<void>;
export type OnProcessIsExecutableChangedCallback = (message: ProcessIsExecutableChangedMessage) => void | Promise<void>;
export type OnProcessUndeployedCallback = (message: ProcessDeploymentMessage) => void | Promise<void>;
export type OnBoundaryEventTriggeredCallback = (boundaryEventTriggered: EventMessageInternal) => void | Promise<void>;
export type OnBoundaryEventFinishedCallback = (boundaryEventFinished: EventMessageInternal) => void | Promise<void>;
export type OnIntermediateThrowEventTriggeredCallback = (intermediateThrowEventTriggered: EventMessageInternal) => void | Promise<void>;
export type OnIntermediateCatchEventReachedCallback = (intermediateCatchEventReached: EventMessageInternal) => void | Promise<void>;
export type OnIntermediateCatchEventFinishedCallback = (intermediateCatchEventFinished: EventMessageInternal) => void | Promise<void>;
export type OnActivityReachedCallback = (activityReached: EventMessageInternal) => void | Promise<void>;
export type OnActivityFinishedCallback = (activityFinished: EventMessageInternal) => void | Promise<void>;
export type OnActivityCanceledCallback = (activityCanceled: EventMessageInternal) => void | Promise<void>;
export type OnUntypedTaskWaitingCallback = (taskWaiting: EventMessageInternal) => void | Promise<void>;
export type OnUntypedTaskFinishedCallback = (taskFinished: EventMessageInternal) => void | Promise<void>;
export type OnManualTaskWaitingCallback = (manualTaskWaiting: EventMessageInternal) => void | Promise<void>;
export type OnManualTaskFinishedCallback = (manualTaskFinished: EventMessageInternal) => void | Promise<void>;
export type OnUserTaskWaitingCallback = (userTaskWaiting: EventMessageInternal) => void | Promise<void>;
export type OnUserTaskFinishedCallback = (userTaskFinished: UserTaskFinishedMessageInternal) => void | Promise<void>;
export type OnUserTaskReservedCallback = (userTaskReserved: EventMessageInternal) => void | Promise<void>;
export type OnUserTaskReservationCanceledCallback = (reservationCanceled: EventMessageInternal) => void | Promise<void>;
export type OnProcessStartingCallback = (processStarting: EventMessageInternal) => void | Promise<void>;
export type OnProcessStartedCallback = (processStarted: EventMessageInternal) => void | Promise<void>;
export type OnProcessErrorCallback = (processError: EventMessageInternal) => void | Promise<void>;
export type OnProcessEndedCallback = (processEnded: EventMessageInternal) => void | Promise<void>;
export type OnProcessOwnerChangedCallback = (processEnded: EventMessageInternal) => void | Promise<void>;
export type OnProcessKilledCallback = (processKilledMessage: EventMessageInternal) => void | Promise<void>;
export type OnKillProcessCallback = (killProcessMessage: KillProcessInstanceMessageInternal) => void | Promise<void>;
export type OnCronjobExecutedCallback = (cronjobExecuted: CronjobEventMessage) => void | Promise<void>;
export type OnCronjobStoppedCallback = (cronjobStopped: CronjobEventMessage) => void | Promise<void>;
export type OnCronjobUpdatedCallback = (cronjobUpdated: CronjobEventMessage) => void | Promise<void>;
export type OnCronjobCreatedCallback = (cronjobCreated: CronjobEventMessage) => void | Promise<void>;
export type OnCronjobRemovedCallback = (cronjobRemoved: CronjobEventMessage) => void | Promise<void>;
export type OnExternalTaskCreatedCallback = (externaTaskData: ExternalTaskCreatedMessageInternal) => void | Promise<void>;
export type OnExternalTaskLockedCallback = (externaTask: ExternalTaskLockedMessageInternal) => void | Promise<void>;
export type OnExternalTaskUnlockedCallback = (externaTask: ExternalTaskUnlockedMessageInternal) => void | Promise<void>;
export type OnExternalTaskExpiredCallback = (externaTask: ExternalTaskExpiredMessageInternal) => void | Promise<void>;
