import * as express from 'express'; import 'reflect-metadata'; import { Connection } from 'typeorm'; import { AppOptions, TemplateOptions, ViewOptions } from './'; export * from './apps'; export * from './src'; /** * Fulminate server class. */ export declare class FulminateServer { /** * Forcefully stop the server. * @param errorFlag * @param message to be shown before the process is stopped. */ static stop(errorFlag?: number, message?: string): void; /** * Array of decorated class-based views. * @type {Array} */ private views; /** * Express server. */ private _server; /** * Options metadata. */ private _optionsMetadata; /** * Fulminate server constructor. * @param {express.Express} expressServer */ constructor(expressServer?: any); /** * Set up and run server. */ run(): void; /** * Elicit app options from options metadata. * These options cannot be changed at runtime. * @returns {AppOptions} */ readonly appOptions: AppOptions; /** * Elicit template options from options metadata. * These options cannot be changed at runtime. * @returns {AppOptions} */ readonly templateOptions: TemplateOptions; /** * Elicit view options from options metadata. * These options cannot be changed at runtime. * @returns {ViewOptions} */ readonly viewOptions: ViewOptions; /** * Get current Express server. * @returns {Express} */ readonly server: express.Express; /** * Add or set value in app options kwargs. * @param key * @param value */ set: object; /** * Get value from app options kwargs by given key. * @param key */ get: object; /** * Remove key-value pair from app options kwargs by given key. * @param key */ remove: object; /** * Register provided class-based views. * @param {string | string[]} paths * @param {string | RegExp | string[] | RegExp[]} namePatterns */ registerViews(paths?: string | string[], namePatterns?: string | RegExp | string[] | RegExp[]): void; /** * Enable Fulminate Admin. * NOTE: You must provide user entity for validation that must include properties 'email', 'password', 'token'. * @see https://fulminate-js.github.io/docs#adminIntroduction * @param {string} validationEntityName * @param connection * @param extension */ enableAdmin(validationEntityName: any, connection: Connection): void; /** * Set up class-based views. */ private setUpViews(); /** * Set up templates based on options metadata. */ private setUpTemplates(); private throwError(view, res, e); }