/// 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