import { type PropertyPath } from 'lodash'; import type { Core, UID, Struct } from '@strapi/types'; export interface RawModule { config?: Record; routes?: Core.Module['routes']; controllers?: Core.Module['controllers']; services?: Core.Module['services']; contentTypes?: Core.Module['contentTypes']; policies?: Core.Module['policies']; middlewares?: Core.Module['middlewares']; bootstrap?: (params: { strapi: Core.Strapi; }) => Promise; register?: (params: { strapi: Core.Strapi; }) => Promise; destroy?: (params: { strapi: Core.Strapi; }) => Promise; } export interface Module { bootstrap: () => Promise; register: () => Promise; destroy: () => Promise; load: () => void; routes: Core.Module['routes']; config(key: PropertyPath, defaultVal?: T): T; contentType: (ctName: UID.ContentType) => Struct.ContentTypeSchema; contentTypes: Record; service: (serviceName: UID.Service) => Core.Service; services: Record; policy: (policyName: UID.Policy) => Core.Policy; policies: Record; middleware: (middlewareName: UID.Middleware) => Core.Middleware; middlewares: Record; controller: (controllerName: UID.Controller) => Core.Controller; controllers: Record; } export declare const createModule: (namespace: string, rawModule: RawModule, strapi: Core.Strapi) => Module; //# sourceMappingURL=index.d.ts.map