import { AceProcess } from './ace.ts'; import { TestRunnerProcess } from './test.ts'; import { HttpServerProcess } from './http.ts'; import type { AppEnvironments } from '../../types/app.ts'; import type { ApplicationService, IgnitorOptions } from '../types.ts'; /** * Ignitor is used to instantiate an AdonisJS application in different * known environments. It serves as the main entry point for creating * and managing application processes. * * @example * const ignitor = new Ignitor(new URL(import.meta.url)) * * // For HTTP server * await ignitor.httpServer().start() * * // For CLI commands * await ignitor.ace().handle(process.argv.slice(2)) * * // For tests * await ignitor.testRunner().run(() => {}) */ export declare class Ignitor { #private; /** * Creates a new Ignitor instance * * @param appRoot - The root URL of the application * @param options - Configuration options for the ignitor */ constructor(appRoot: URL, options?: IgnitorOptions); /** * Get access to the application instance created * by either the http server process or the ace * process */ getApp(): ApplicationService | undefined; /** * Create an instance of AdonisJS application * * @param environment - The environment in which to create the app (web, console, test, repl) */ createApp(environment: AppEnvironments): ApplicationService; /** * Tap to access the application class instance. * * @param callback - Callback function to execute when app is created */ tap(callback: (app: ApplicationService) => void): this; /** * Get instance of the HTTPServerProcess */ httpServer(): HttpServerProcess; /** * Get an instance of the AceProcess class */ ace(): AceProcess; /** * Get an instance of the TestRunnerProcess class */ testRunner(): TestRunnerProcess; /** * Terminates the app by calling the "app.terminate" * method */ terminate(): Promise; }