import { TConstValue, ValueOrPromise } from '@venizia/ignis-helpers'; import { Container } from '@venizia/ignis-inversion'; import { BootPhases } from './constants'; export interface IArtifactOptions { dirs?: string[]; extensions?: string[]; isNested?: boolean; glob?: string; } export interface IBootOptions { controllers?: IArtifactOptions; services?: IArtifactOptions; repositories?: IArtifactOptions; datasources?: IArtifactOptions; [artifactType: string]: IArtifactOptions | undefined; } export type TBootPhase = TConstValue; export declare const BOOT_PHASES: TBootPhase[]; export interface IApplication extends Container { getProjectRoot(): string; } export interface IBootableApplication { boot(): Promise; } export interface IBooterOptions { scope: string; root: string; artifactOptions: IArtifactOptions; } export interface IBooter { configure(): ValueOrPromise; discover(): ValueOrPromise; load(): ValueOrPromise; } export interface IBootExecutionOptions { phases?: TBootPhase[]; booters?: string[]; } export interface IBootstrapper { boot(opts: IBootExecutionOptions): Promise; } export interface IBootPhaseReport { phase: TBootPhase; durationMs: number; } export interface IBootReport { /** Class names of the booters that actually ran, in execution order. */ booters: string[]; phases: IBootPhaseReport[]; totalDurationMs: number; } //# sourceMappingURL=types.d.ts.map