///
declare const _default: {
register: ({ strapi }: {
strapi: import("@strapi/types/dist/core").Strapi;
}) => Promise;
bootstrap: (args: any) => Promise;
destroy: ({ strapi }: {
strapi: import("@strapi/types/dist/core").Strapi;
}) => Promise;
contentTypes: {
workflow: {
schema: {
collectionName: string;
info: {
name: string;
description: string;
singularName: string;
pluralName: string;
displayName: string;
};
options: {};
pluginOptions: {
'content-manager': {
visible: boolean;
};
'content-type-builder': {
visible: boolean;
};
};
attributes: {
name: {
type: string;
required: boolean;
unique: boolean;
};
stages: {
type: string;
target: string;
relation: string;
mappedBy: string;
};
stageRequiredToPublish: {
type: string;
target: string;
relation: string;
required: boolean;
};
contentTypes: {
type: string;
required: boolean;
default: string;
};
};
};
};
'workflow-stage': {
schema: {
collectionName: string;
info: {
name: string;
description: string;
singularName: string;
pluralName: string;
displayName: string;
};
options: {
version: string;
};
pluginOptions: {
'content-manager': {
visible: boolean;
};
'content-type-builder': {
visible: boolean;
};
};
attributes: {
name: {
type: string;
configurable: boolean;
};
color: {
type: string;
configurable: boolean;
default: string;
};
workflow: {
type: string;
target: string;
relation: string;
inversedBy: string;
configurable: boolean;
};
permissions: {
type: string;
target: string;
relation: string;
configurable: boolean;
};
};
};
};
};
services: {
homepage: ({ strapi }: {
strapi: import("@strapi/types/dist/core").Strapi;
}) => {
getRecentlyAssignedDocuments(): Promise;
};
workflows: ({ strapi }: {
strapi: import("@strapi/types/dist/core").Strapi;
}) => {
find(opts?: any): Promise;
findById(id: any, opts?: {
populate?: any;
}): Promise;
create(opts: {
data: any;
}): Promise;
update(workflow: any, opts: any): Promise;
delete(workflow: any, opts: any): Promise;
count(): Promise;
getAssignedWorkflow(uid: any, opts?: any): Promise;
_getAssignedWorkflows(uid: any, opts?: {}): Promise;
assertContentTypeBelongsToWorkflow(uid: any): Promise;
assertStageBelongsToWorkflow(stageId: any, workflow: any): void;
};
stages: ({ strapi }: {
strapi: import("@strapi/types/dist/core").Strapi;
}) => {
find({ workflowId, populate }: any): Promise;
findById(id: string | number, { populate }?: any): Promise;
createMany(stagesList: any, { fields }?: any): Promise;
update(srcStage: any, destStage: any): Promise;
delete(stage: any): Promise;
deleteMany(stages: any): Promise;
deleteStagePermissions(stages: any): Promise;
count({ workflowId }?: any): Promise;
replaceStages(srcStages: any, destStages: any, contentTypesToMigrate?: never[]): Promise;
updateEntity(entityToUpdate: {
id: string | number;
documentId: string;
locale: string;
updatedAt: string;
}, model: import("@strapi/types/dist/uid").ContentType, stageId: any): Promise;
updateEntitiesStage(contentTypeUID: any, { fromStageId, toStageId }: any): Promise;
deleteAllEntitiesStage(contentTypeUID: any): Promise;
};
'stage-permissions': ({ strapi }: {
strapi: import("@strapi/types/dist/core").Strapi;
}) => {
register({ roleId, action, fromStage, }: {
roleId: number;
action: string;
fromStage: number;
}): Promise;
registerMany(permissions: {
roleId: number;
action: string;
fromStage: number;
}[]): Promise;
registerTo({ roleId, action, toStage, }: {
roleId: number;
action: string;
toStage: number;
}): Promise;
registerManyTo(permissions: {
roleId: number;
action: string;
toStage: number;
}[]): Promise;
unregister(permissions: {
id: number;
}[]): Promise;
can(action: string, fromStage: number): any;
canTransitionToStage(toStageId: number): Promise;
canTransitionToStageWithPermissions(stage: {
permissions?: {
actionParameters?: {
to?: number | undefined;
} | undefined;
role?: number | {
id: number;
} | undefined;
}[] | undefined;
}): boolean;
};
assignees: ({ strapi }: {
strapi: import("@strapi/types/dist/core").Strapi;
}) => {
findEntityAssigneeId(id: string | number, model: import("@strapi/types/dist/uid").ContentType): Promise;
updateEntityAssignee(entityToUpdate: {
id: string | number;
documentId: string;
locale: string;
updatedAt: string;
}, model: import("@strapi/types/dist/uid").ContentType, assigneeId: string | null): Promise;
};
validation: ({ strapi }: {
strapi: import("@strapi/types/dist/core").Strapi;
}) => {
limits: {
numberOfWorkflows: number;
stagesPerWorkflow: number;
};
register({ numberOfWorkflows, stagesPerWorkflow }: any): void;
validateWorkflowStages(stages: any): void;
validateWorkflowCountStages(workflowId: any, countAddedStages?: number): Promise;
validateWorkflowCount(countAddedWorkflows?: number): Promise;
};
'document-service-middlewares': () => {
assignStageOnCreate: import("@strapi/types/dist/modules/documents/middleware").Middleware;
handleStageOnUpdate: import("@strapi/types/dist/modules/documents/middleware").Middleware;
checkStageBeforePublish: import("@strapi/types/dist/modules/documents/middleware").Middleware;
};
'workflow-metrics': {
sendDidCreateStage: () => Promise;
sendDidEditStage: () => Promise;
sendDidDeleteStage: () => Promise;
sendDidChangeEntryStage: () => Promise;
sendDidCreateWorkflow: (workflowId: string, hasRequiredStageToPublish: boolean) => Promise;
sendDidEditWorkflow: (workflowId: string, hasRequiredStageToPublish: boolean) => Promise;
sendDidSendReviewWorkflowPropertiesOnceAWeek: (numberOfActiveWorkflows: number, avgStagesCount: number, maxStagesCount: number, activatedContentTypes: number) => Promise;
sendDidEditAssignee: (fromId: any, toId: any) => Promise;
};
'workflow-weekly-metrics': ({ strapi }: {
strapi: import("@strapi/types/dist/core").Strapi;
}) => {
computeMetrics(): Promise<{
numberOfActiveWorkflows: number;
avgStagesCount: number;
maxStagesCount: unknown;
activatedContentTypes: number;
}>;
sendMetrics(): Promise;
ensureWeeklyStoredCronSchedule(): Promise;
registerCron(): Promise;
};
};
controllers: {
workflows: {
create(ctx: import("koa").Context): Promise;
update(ctx: import("koa").Context): Promise;
delete(ctx: import("koa").Context): Promise;
find(ctx: import("koa").Context): Promise;
};
stages: {
find(ctx: import("koa").Context): Promise;
findById(ctx: import("koa").Context): Promise;
updateEntity(ctx: import("koa").Context): Promise;
listAvailableStages(ctx: import("koa").Context): Promise;
};
assignees: {
updateEntity(ctx: import("koa").Context): Promise;
};
};
routes: {
homepage: import("@strapi/types/dist/core").Router;
'review-workflows': {
type: string;
routes: {
method: string;
path: string;
handler: string;
config: {
middlewares: ((ctx: any, next: any) => any)[];
policies: (string | {
name: string;
config: {
actions: string[];
};
})[];
};
}[];
};
};
} | {
contentTypes: {
workflow: {
schema: {
collectionName: string;
info: {
name: string;
description: string;
singularName: string;
pluralName: string;
displayName: string;
};
options: {};
pluginOptions: {
'content-manager': {
visible: boolean;
};
'content-type-builder': {
visible: boolean;
};
};
attributes: {
name: {
type: string;
required: boolean;
unique: boolean;
};
stages: {
type: string;
target: string;
relation: string;
mappedBy: string;
};
stageRequiredToPublish: {
type: string;
target: string;
relation: string;
required: boolean;
};
contentTypes: {
type: string;
required: boolean;
default: string;
};
};
};
};
'workflow-stage': {
schema: {
collectionName: string;
info: {
name: string;
description: string;
singularName: string;
pluralName: string;
displayName: string;
};
options: {
version: string;
};
pluginOptions: {
'content-manager': {
visible: boolean;
};
'content-type-builder': {
visible: boolean;
};
};
attributes: {
name: {
type: string;
configurable: boolean;
};
color: {
type: string;
configurable: boolean;
default: string;
};
workflow: {
type: string;
target: string;
relation: string;
inversedBy: string;
configurable: boolean;
};
permissions: {
type: string;
target: string;
relation: string;
configurable: boolean;
};
};
};
};
};
register?: undefined;
bootstrap?: undefined;
destroy?: undefined;
services?: undefined;
controllers?: undefined;
routes?: undefined;
};
export default _default;
//# sourceMappingURL=index.d.ts.map