/// import { LoggerInstance } from 'winston'; import { EventEmitter } from 'events'; import { ExtensionsManager } from '../extensions/extensions-manager'; import { EventCollectionEmitter } from './event-collection'; import { ExtensionDefinition, KitesExtension } from '../extensions/extensions'; /** * Kites callback on ready */ export declare type KitesReadyCallback = (kites: IKites) => void; /** * Kites Options */ export interface IKitesOptions { [key: string]: any; discover?: boolean; loadConfig?: boolean; rootDirectory?: string; appDirectory?: string; parentModuleDirectory?: string; env?: string; logger?: any; mode?: string; cacheAvailableExtensions?: any; tempDirectory?: string; extensionsLocationCache?: boolean; extensions?: string[]; } /** * Kite Interface */ export interface IKites { [key: string]: any; name: string; version: string; options: IKitesOptions; initializeListeners: EventCollectionEmitter; isInitialized: boolean; logger: LoggerInstance; afterConfigLoaded(fn: KitesReadyCallback): IKites; ready(callback: KitesReadyCallback): IKites; discover(option?: string | boolean): IKites; use(extension: KitesExtension | ExtensionDefinition): IKites; init(): Promise; } /** * Kites engine core */ export declare class KitesInstance extends EventEmitter implements IKites { [key: string]: any; name: string; version: string; options: IKitesOptions; initializeListeners: EventCollectionEmitter; extensionsManager: ExtensionsManager; logger: LoggerInstance; private fnAfterConfigLoaded; private isReady; private initialized; constructor(options?: IKitesOptions); readonly isInitialized: boolean; readonly defaults: { appDirectory: string; discover: boolean; env: string; logger: { console: { level: string; transport: string; }; }; parentModuleDirectory: string; rootDirectory: string; }; readonly configFileName: "prod.config.json" | "test.config.json" | "dev.config.json"; readonly defaultConfigFile: string; /** * Root directory - Used to searches extensions * Default in node_modules */ readonly rootDirectory: string | undefined; /** * App directory - Used to seaches app configuration */ readonly appDirectory: string; /** * Parent module directory */ readonly parentModuleDirectory: string; /** * Get kites option or default value * @param option * @param defaultValue */ defaultOption(option: string, defaultValue: any): any; /** * Get default path from appDirectory * @param {string} value */ defaultPath(value: string): string; /** * Kites fire on ready * @param callback */ ready(callback: KitesReadyCallback): this; /** * Use a function as a kites extension * @param extension */ use(extension: KitesExtension | ExtensionDefinition): this; /** * Enable auto discover extensions */ discover(option: string | boolean): this; /** * Assign config loaded callback * @param fn Function */ afterConfigLoaded(fn: KitesReadyCallback): this; /** * Kites initialize */ init(): Promise; private _initOptions; private _silentLogs; private _loadConfig; private _configureWinstonTransports; private _initWinston; }