import { ClassType, IApplication, IEnvironmentValidationResult, IRepository, IService, TInjectionGetter, ValueOrPromise } from '../../common/types'; import { ApplicationLogger } from '../../helpers'; import { ApplicationConfig, Binding, BindingFromClassOptions, BindingScope, Constructor, ControllerClass } from '@loopback/core'; import { JugglerDataSource, Repository } from '@loopback/repository'; import { RestApplication, SequenceHandler } from '@loopback/rest'; import { BaseEntity } from './../models'; declare const BaseApplication_base: (new (...args: any[]) => { projectRoot: string; bootOptions?: import("@loopback/boot").BootOptions | undefined; booted: boolean; start(): Promise; boot(): Promise; booters(...booterCls: Constructor[]): Binding[]; applicationBooter(subApp: import("@loopback/core").Application & import("@loopback/boot").Bootable, filter?: import("@loopback/core").BindingFilter): Binding; component(componentCtor: Constructor, nameOrOptions?: string | BindingFromClassOptions): Binding; mountComponentBooters(componentInstanceOrClass: Constructor | import("@loopback/boot").InstanceWithBooters): void; readonly options: import("@loopback/core").ApplicationConfig; readonly state: string; controller: (controllerCtor: import("@loopback/core").ControllerClass, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding; server: (ctor: Constructor, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding; servers: (ctors: Constructor[]) => Binding[]; getServer: (target: string | Constructor) => Promise; init: () => Promise; onInit: (fn: () => import("@loopback/core").ValueOrPromise) => Binding; onStart: (fn: () => import("@loopback/core").ValueOrPromise) => Binding; stop: () => Promise; onStop: (fn: () => import("@loopback/core").ValueOrPromise) => Binding; setMetadata: (metadata: import("@loopback/core").ApplicationMetadata) => void; lifeCycleObserver: (ctor: Constructor, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding; service: (cls: import("@loopback/core").ServiceOrProviderClass, nameOrOptions?: string | import("@loopback/core").ServiceOptions | undefined) => Binding; interceptor: (interceptor: import("@loopback/core").Interceptor | Constructor>, nameOrOptions?: string | import("@loopback/core").InterceptorBindingOptions | undefined) => Binding; readonly name: string; readonly subscriptionManager: import("@loopback/core").ContextSubscriptionManager; scope: BindingScope; readonly parent: import("@loopback/core").Context | undefined; emitEvent: (type: string, event: T_5) => void; emitError: (err: unknown) => void; bind: (key: import("@loopback/core").BindingAddress) => Binding; add: (binding: Binding) => import("@loopback/core").Application; configure: (key?: import("@loopback/core").BindingAddress | undefined) => Binding; getConfigAsValueOrPromise: (key: import("@loopback/core").BindingAddress, propertyPath?: string | undefined, resolutionOptions?: import("@loopback/core").ResolutionOptions | undefined) => import("@loopback/core").ValueOrPromise; getConfig: (key: import("@loopback/core").BindingAddress, propertyPath?: string | undefined, resolutionOptions?: import("@loopback/core").ResolutionOptions | undefined) => Promise; getConfigSync: (key: import("@loopback/core").BindingAddress, propertyPath?: string | undefined, resolutionOptions?: import("@loopback/core").ResolutionOptions | undefined) => ConfigValueType_3 | undefined; unbind: (key: import("@loopback/core").BindingAddress) => boolean; subscribe: (observer: import("@loopback/core").ContextEventObserver) => import("@loopback/core").Subscription; unsubscribe: (observer: import("@loopback/core").ContextEventObserver) => boolean; close: () => void; isSubscribed: (observer: import("@loopback/core").ContextObserver) => boolean; createView: (filter: import("@loopback/core").BindingFilter, comparator?: import("@loopback/core").BindingComparator | undefined, options?: Omit | undefined) => import("@loopback/core").ContextView; contains: (key: import("@loopback/core").BindingAddress) => boolean; isBound: (key: import("@loopback/core").BindingAddress) => boolean; getOwnerContext: (keyOrBinding: Readonly> | import("@loopback/core").BindingAddress) => import("@loopback/core").Context | undefined; getScopedContext: (scope: BindingScope.APPLICATION | BindingScope.SERVER | BindingScope.REQUEST) => import("@loopback/core").Context | undefined; getResolutionContext: (binding: Readonly>) => import("@loopback/core").Context | undefined; isVisibleTo: (ctx: import("@loopback/core").Context) => boolean; find: (pattern?: string | RegExp | import("@loopback/core").BindingFilter | undefined) => Readonly>[]; findByTag: (tagFilter: RegExp | import("@loopback/core").BindingTag) => Readonly>[]; get: { (keyWithPath: import("@loopback/core").BindingAddress, session?: import("@loopback/core").ResolutionSession | undefined): Promise; (keyWithPath: import("@loopback/core").BindingAddress, options: import("@loopback/core").ResolutionOptions): Promise; }; getSync: { (keyWithPath: import("@loopback/core").BindingAddress, session?: import("@loopback/core").ResolutionSession | undefined): ValueType_5; (keyWithPath: import("@loopback/core").BindingAddress, options?: import("@loopback/core").ResolutionOptions | undefined): ValueType_6 | undefined; }; getBinding: { (key: import("@loopback/core").BindingAddress): Binding; (key: import("@loopback/core").BindingAddress, options?: { optional?: boolean | undefined; } | undefined): Binding | undefined; }; findOrCreateBinding: (key: import("@loopback/core").BindingAddress, policy?: import("@loopback/core").BindingCreationPolicy | undefined) => Binding; getValueOrPromise: (keyWithPath: import("@loopback/core").BindingAddress, optionsOrSession?: import("@loopback/core").ResolutionOptionsOrSession | undefined) => import("@loopback/core").ValueOrPromise; toJSON: () => import("@loopback/core").JSONObject; inspect: (options?: import("@loopback/core").ContextInspectOptions | undefined) => import("@loopback/core").JSONObject; on: { (eventName: "bind" | "unbind", listener: import("@loopback/core").ContextEventListener): import("@loopback/core").Application; (event: string | symbol, listener: (...args: any[]) => void): import("@loopback/core").Application; }; once: { (eventName: "bind" | "unbind", listener: import("@loopback/core").ContextEventListener): import("@loopback/core").Application; (event: string | symbol, listener: (...args: any[]) => void): import("@loopback/core").Application; }; [EventEmitter.captureRejectionSymbol]?: ((error: Error, event: string | symbol, ...args: any[]) => void) | undefined; addListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; removeListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; off: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; removeAllListeners: (event?: string | symbol | undefined) => import("@loopback/core").Application; setMaxListeners: (n: number) => import("@loopback/core").Application; getMaxListeners: () => number; listeners: (eventName: string | symbol) => Function[]; rawListeners: (eventName: string | symbol) => Function[]; emit: (eventName: string | symbol, ...args: any[]) => boolean; listenerCount: (eventName: string | symbol, listener?: Function | undefined) => number; prependListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; prependOnceListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; eventNames: () => (string | symbol)[]; }) & (new (...args: any[]) => { serviceProvider(provider: Constructor>, nameOrOptions?: string | import("@loopback/core").ServiceOptions): Binding; component(componentCtor: Constructor, nameOrOptions?: string | BindingFromClassOptions): Binding; mountComponentServices(component: Constructor, componentBindingKey?: import("@loopback/core").BindingAddress | undefined): void; readonly options: import("@loopback/core").ApplicationConfig; readonly state: string; controller: (controllerCtor: import("@loopback/core").ControllerClass, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding; server: (ctor: Constructor, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding; servers: (ctors: Constructor[]) => Binding[]; getServer: (target: string | Constructor) => Promise; init: () => Promise; onInit: (fn: () => import("@loopback/core").ValueOrPromise) => Binding; start: () => Promise; onStart: (fn: () => import("@loopback/core").ValueOrPromise) => Binding; stop: () => Promise; onStop: (fn: () => import("@loopback/core").ValueOrPromise) => Binding; setMetadata: (metadata: import("@loopback/core").ApplicationMetadata) => void; lifeCycleObserver: (ctor: Constructor, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding; service: (cls: import("@loopback/core").ServiceOrProviderClass, nameOrOptions?: string | import("@loopback/core").ServiceOptions | undefined) => Binding; interceptor: (interceptor: import("@loopback/core").Interceptor | Constructor>, nameOrOptions?: string | import("@loopback/core").InterceptorBindingOptions | undefined) => Binding; readonly name: string; readonly subscriptionManager: import("@loopback/core").ContextSubscriptionManager; scope: import("@loopback/core").BindingScope; readonly parent: import("@loopback/core").Context | undefined; emitEvent: (type: string, event: T_5) => void; emitError: (err: unknown) => void; bind: (key: import("@loopback/core").BindingAddress) => Binding; add: (binding: Binding) => import("@loopback/core").Application; configure: (key?: import("@loopback/core").BindingAddress | undefined) => Binding; getConfigAsValueOrPromise: (key: import("@loopback/core").BindingAddress, propertyPath?: string | undefined, resolutionOptions?: import("@loopback/core").ResolutionOptions | undefined) => import("@loopback/core").ValueOrPromise; getConfig: (key: import("@loopback/core").BindingAddress, propertyPath?: string | undefined, resolutionOptions?: import("@loopback/core").ResolutionOptions | undefined) => Promise; getConfigSync: (key: import("@loopback/core").BindingAddress, propertyPath?: string | undefined, resolutionOptions?: import("@loopback/core").ResolutionOptions | undefined) => ConfigValueType_3 | undefined; unbind: (key: import("@loopback/core").BindingAddress) => boolean; subscribe: (observer: import("@loopback/core").ContextEventObserver) => import("@loopback/core").Subscription; unsubscribe: (observer: import("@loopback/core").ContextEventObserver) => boolean; close: () => void; isSubscribed: (observer: import("@loopback/core").ContextObserver) => boolean; createView: (filter: import("@loopback/core").BindingFilter, comparator?: import("@loopback/core").BindingComparator | undefined, options?: Omit | undefined) => import("@loopback/core").ContextView; contains: (key: import("@loopback/core").BindingAddress) => boolean; isBound: (key: import("@loopback/core").BindingAddress) => boolean; getOwnerContext: (keyOrBinding: import("@loopback/core").BindingAddress | Readonly>) => import("@loopback/core").Context | undefined; getScopedContext: (scope: import("@loopback/core").BindingScope.APPLICATION | import("@loopback/core").BindingScope.SERVER | import("@loopback/core").BindingScope.REQUEST) => import("@loopback/core").Context | undefined; getResolutionContext: (binding: Readonly>) => import("@loopback/core").Context | undefined; isVisibleTo: (ctx: import("@loopback/core").Context) => boolean; find: (pattern?: string | RegExp | import("@loopback/core").BindingFilter | undefined) => Readonly>[]; findByTag: (tagFilter: RegExp | import("@loopback/core").BindingTag) => Readonly>[]; get: { (keyWithPath: import("@loopback/core").BindingAddress, session?: import("@loopback/core").ResolutionSession | undefined): Promise; (keyWithPath: import("@loopback/core").BindingAddress, options: import("@loopback/core").ResolutionOptions): Promise; }; getSync: { (keyWithPath: import("@loopback/core").BindingAddress, session?: import("@loopback/core").ResolutionSession | undefined): ValueType_5; (keyWithPath: import("@loopback/core").BindingAddress, options?: import("@loopback/core").ResolutionOptions | undefined): ValueType_6 | undefined; }; getBinding: { (key: import("@loopback/core").BindingAddress): Binding; (key: import("@loopback/core").BindingAddress, options?: { optional?: boolean | undefined; } | undefined): Binding | undefined; }; findOrCreateBinding: (key: import("@loopback/core").BindingAddress, policy?: import("@loopback/core").BindingCreationPolicy | undefined) => Binding; getValueOrPromise: (keyWithPath: import("@loopback/core").BindingAddress, optionsOrSession?: import("@loopback/core").ResolutionOptionsOrSession | undefined) => import("@loopback/core").ValueOrPromise; toJSON: () => import("@loopback/core").JSONObject; inspect: (options?: import("@loopback/core").ContextInspectOptions | undefined) => import("@loopback/core").JSONObject; on: { (eventName: "bind" | "unbind", listener: import("@loopback/core").ContextEventListener): import("@loopback/core").Application; (event: string | symbol, listener: (...args: any[]) => void): import("@loopback/core").Application; }; once: { (eventName: "bind" | "unbind", listener: import("@loopback/core").ContextEventListener): import("@loopback/core").Application; (event: string | symbol, listener: (...args: any[]) => void): import("@loopback/core").Application; }; [EventEmitter.captureRejectionSymbol]?: ((error: Error, event: string | symbol, ...args: any[]) => void) | undefined; addListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; removeListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; off: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; removeAllListeners: (event?: string | symbol | undefined) => import("@loopback/core").Application; setMaxListeners: (n: number) => import("@loopback/core").Application; getMaxListeners: () => number; listeners: (eventName: string | symbol) => Function[]; rawListeners: (eventName: string | symbol) => Function[]; emit: (eventName: string | symbol, ...args: any[]) => boolean; listenerCount: (eventName: string | symbol, listener?: Function | undefined) => number; prependListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; prependOnceListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; eventNames: () => (string | symbol)[]; }) & (new (...args: any[]) => { repository>(repoClass: import("@loopback/repository").Class, nameOrOptions?: string | BindingFromClassOptions): Binding; getRepository>(repo: import("@loopback/repository").Class): Promise; dataSource(dataSource: D | import("@loopback/repository").Class, nameOrOptions?: string | BindingFromClassOptions): Binding; model>(modelClass: M): Binding; component(componentCtor: Constructor, nameOrOptions?: string | BindingFromClassOptions): Binding; mountComponentRepositories(componentInstanceOrClass: import("@loopback/repository").Class | import("@loopback/repository").RepositoryComponent): void; mountComponentModels(component: import("@loopback/repository").RepositoryComponent): void; migrateSchema(options?: import("@loopback/repository").SchemaMigrationOptions): Promise; readonly options: import("@loopback/core").ApplicationConfig; readonly state: string; controller: (controllerCtor: import("@loopback/core").ControllerClass, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding; server: (ctor: Constructor, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding; servers: (ctors: Constructor[]) => Binding[]; getServer: (target: string | Constructor) => Promise; init: () => Promise; onInit: (fn: () => import("@loopback/core").ValueOrPromise) => Binding; start: () => Promise; onStart: (fn: () => import("@loopback/core").ValueOrPromise) => Binding; stop: () => Promise; onStop: (fn: () => import("@loopback/core").ValueOrPromise) => Binding; setMetadata: (metadata: import("@loopback/core").ApplicationMetadata) => void; lifeCycleObserver: (ctor: Constructor, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding; service: (cls: import("@loopback/core").ServiceOrProviderClass, nameOrOptions?: string | import("@loopback/core").ServiceOptions | undefined) => Binding; interceptor: (interceptor: import("@loopback/core").Interceptor | Constructor>, nameOrOptions?: string | import("@loopback/core").InterceptorBindingOptions | undefined) => Binding; readonly name: string; readonly subscriptionManager: import("@loopback/core").ContextSubscriptionManager; scope: BindingScope; readonly parent: import("@loopback/core").Context | undefined; emitEvent: (type: string, event: T_5) => void; emitError: (err: unknown) => void; bind: (key: import("@loopback/core").BindingAddress) => Binding; add: (binding: Binding) => import("@loopback/core").Application; configure: (key?: import("@loopback/core").BindingAddress | undefined) => Binding; getConfigAsValueOrPromise: (key: import("@loopback/core").BindingAddress, propertyPath?: string | undefined, resolutionOptions?: import("@loopback/core").ResolutionOptions | undefined) => import("@loopback/core").ValueOrPromise; getConfig: (key: import("@loopback/core").BindingAddress, propertyPath?: string | undefined, resolutionOptions?: import("@loopback/core").ResolutionOptions | undefined) => Promise; getConfigSync: (key: import("@loopback/core").BindingAddress, propertyPath?: string | undefined, resolutionOptions?: import("@loopback/core").ResolutionOptions | undefined) => ConfigValueType_3 | undefined; unbind: (key: import("@loopback/core").BindingAddress) => boolean; subscribe: (observer: import("@loopback/core").ContextEventObserver) => import("@loopback/core").Subscription; unsubscribe: (observer: import("@loopback/core").ContextEventObserver) => boolean; close: () => void; isSubscribed: (observer: import("@loopback/core").ContextObserver) => boolean; createView: (filter: import("@loopback/core").BindingFilter, comparator?: import("@loopback/core").BindingComparator | undefined, options?: Omit | undefined) => import("@loopback/core").ContextView; contains: (key: import("@loopback/core").BindingAddress) => boolean; isBound: (key: import("@loopback/core").BindingAddress) => boolean; getOwnerContext: (keyOrBinding: import("@loopback/core").BindingAddress | Readonly>) => import("@loopback/core").Context | undefined; getScopedContext: (scope: BindingScope.APPLICATION | BindingScope.SERVER | BindingScope.REQUEST) => import("@loopback/core").Context | undefined; getResolutionContext: (binding: Readonly>) => import("@loopback/core").Context | undefined; isVisibleTo: (ctx: import("@loopback/core").Context) => boolean; find: (pattern?: string | RegExp | import("@loopback/core").BindingFilter | undefined) => Readonly>[]; findByTag: (tagFilter: RegExp | import("@loopback/core").BindingTag) => Readonly>[]; get: { (keyWithPath: import("@loopback/core").BindingAddress, session?: import("@loopback/core").ResolutionSession | undefined): Promise; (keyWithPath: import("@loopback/core").BindingAddress, options: import("@loopback/core").ResolutionOptions): Promise; }; getSync: { (keyWithPath: import("@loopback/core").BindingAddress, session?: import("@loopback/core").ResolutionSession | undefined): ValueType_5; (keyWithPath: import("@loopback/core").BindingAddress, options?: import("@loopback/core").ResolutionOptions | undefined): ValueType_6 | undefined; }; getBinding: { (key: import("@loopback/core").BindingAddress): Binding; (key: import("@loopback/core").BindingAddress, options?: { optional?: boolean | undefined; } | undefined): Binding | undefined; }; findOrCreateBinding: (key: import("@loopback/core").BindingAddress, policy?: import("@loopback/core").BindingCreationPolicy | undefined) => Binding; getValueOrPromise: (keyWithPath: import("@loopback/core").BindingAddress, optionsOrSession?: import("@loopback/core").ResolutionOptionsOrSession | undefined) => import("@loopback/core").ValueOrPromise; toJSON: () => import("@loopback/core").JSONObject; inspect: (options?: import("@loopback/core").ContextInspectOptions | undefined) => import("@loopback/core").JSONObject; on: { (eventName: "bind" | "unbind", listener: import("@loopback/core").ContextEventListener): import("@loopback/core").Application; (event: string | symbol, listener: (...args: any[]) => void): import("@loopback/core").Application; }; once: { (eventName: "bind" | "unbind", listener: import("@loopback/core").ContextEventListener): import("@loopback/core").Application; (event: string | symbol, listener: (...args: any[]) => void): import("@loopback/core").Application; }; [EventEmitter.captureRejectionSymbol]?: ((error: Error, event: string | symbol, ...args: any[]) => void) | undefined; addListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; removeListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; off: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; removeAllListeners: (event?: string | symbol | undefined) => import("@loopback/core").Application; setMaxListeners: (n: number) => import("@loopback/core").Application; getMaxListeners: () => number; listeners: (eventName: string | symbol) => Function[]; rawListeners: (eventName: string | symbol) => Function[]; emit: (eventName: string | symbol, ...args: any[]) => boolean; listenerCount: (eventName: string | symbol, listener?: Function | undefined) => number; prependListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; prependOnceListener: (eventName: string | symbol, listener: (...args: any[]) => void) => import("@loopback/core").Application; eventNames: () => (string | symbol)[]; }) & typeof RestApplication; export declare abstract class BaseApplication extends BaseApplication_base implements IApplication { protected logger: ApplicationLogger; models: Set; constructor(opts: { scope?: string; sequence?: Constructor; serverOptions: ApplicationConfig; }); abstract staticConfigure(): void; abstract getProjectRoot(): string; abstract validateEnv(): IEnvironmentValidationResult; abstract declareModels(): Set; abstract preConfigure(): void; abstract postConfigure(): void; initialize(opts: { sequence?: Constructor; }): ValueOrPromise; getServerHost(): string; getServerPort(): number; getServerAddress(): string; getInjectionGetter(): TInjectionGetter; getDatasourceSync(dsName: string): D; getRepositorySync(c: ClassType): R; getServiceSync(c: ClassType): S; getMigrateModels(opts: { ignoreModels?: string[]; migrateModels?: string[]; }): Promise[]>; classifyModelsByDatasource(opts: { reps: Array>; }): Record; migrateModels(opts: { existingSchema: string; ignoreModels?: string[]; migrateModels?: string[]; }): Promise; grpcController(ctor: ControllerClass, nameOrOptions?: string | BindingFromClassOptions): Binding; } export {}; //# sourceMappingURL=base.application.d.ts.map