import { IAstroboyFrameworkDefine } from '../../definitions'; import { IAstroboyCtxExtends, IArgumentsExtractor, IServiceProtected, ReturnAnyType, IBaseFrameworkDefine } from '../../definitions/extends/context'; /** * ## Astroboy Base Class * - `ctx` Context 请求上下文对象 * - `app` Koa Application 实例对象 * - `config` 应用配置对象 * * @author Big Mogician * @export * @class BaseClass * @implements {IAstroboyCtxExtends} * @template DEFINE Framework Definition, default is `IAstroboyFrameworkDefine` */ export declare class BaseClass = IAstroboyFrameworkDefine> implements IAstroboyCtxExtends { protected app: DEFINE['app']; protected config: DEFINE['config']; protected ctx: DEFINE['ctx']; constructor(ctx: DEFINE['ctx']); getConfig(): DEFINE['config']; getConfig(key: K): DEFINE['config'][K]; getLib(pkgName: PkgName, libName: LibName): LibMethods; getServiceClass(pkgName: PkgName, serviceName: ServiceName): ServiceClass; getService>(pkgName: PkgName, serviceName: ServiceName): ServiceInstance; callService(service: string, method: string, ...args: any[]): Promise; callService(method: string, ...args: any[]): Promise; invokeServiceMethod, keyof IServiceProtected>, MethodArgs extends IArgumentsExtractor[MethodName]>, Result extends ReturnAnyType[MethodName]>>(pkgName: PkgName, serviceName: ServiceName, methodName: MethodName, ...args: MethodArgs): Result; }