import diagnostics_channel from 'node:diagnostics_channel';
import { type ContainerProviderContract, type PreloadNode } from './types.ts';
/**
 * Tracing channel for service provider register lifecycle hook.
 * This channel traces when a provider's register() method is called during
 * the application initialization phase.
 *
 * @example
 * // Subscribe to register events
 * providerRegister.subscribe({
 *   start(provider) {
 *     console.log('Provider registering:', provider.constructor.name)
 *   },
 *   end(provider) {
 *     console.log('Provider registered:', provider.constructor.name)
 *   }
 * })
 */
export declare const providerRegister: diagnostics_channel.TracingChannel<"adonisjs.provider.register", {
    provider: ContainerProviderContract;
}>;
/**
 * Tracing channel for service provider boot lifecycle hook.
 * This channel traces when a provider's boot() method is called during
 * the application boot phase, after all providers have been registered.
 *
 * @example
 * // Monitor boot performance
 * providerBoot.subscribe({
 *   asyncStart(provider) {
 *     console.time(`boot-${provider.constructor.name}`)
 *   },
 *   asyncEnd(provider) {
 *     console.timeEnd(`boot-${provider.constructor.name}`)
 *   }
 * })
 */
export declare const providerBoot: diagnostics_channel.TracingChannel<"adonisjs.provider.boot", {
    provider: ContainerProviderContract;
}>;
/**
 * Tracing channel for service provider start lifecycle hook.
 * This channel traces when a provider's start() method is called during
 * the application start phase, after all providers have been booted.
 *
 * @example
 * // Track provider startup order
 * const startupOrder: string[] = []
 * providerStart.subscribe({
 *   asyncStart(provider) {
 *     startupOrder.push(provider.constructor.name)
 *   }
 * })
 */
export declare const providerStart: diagnostics_channel.TracingChannel<"adonisjs.provider.start", {
    provider: ContainerProviderContract;
}>;
/**
 * Tracing channel for service provider ready lifecycle hook.
 * This channel traces when a provider's ready() method is called after
 * the application is fully ready and serving requests.
 *
 * @example
 * // Log when providers are ready
 * providerReady.subscribe({
 *   asyncStart(provider) {
 *     console.log('Provider ready:', provider.constructor.name)
 *   },
 *   error(provider, error) {
 *     console.error('Provider ready failed:', provider.constructor.name, error)
 *   }
 * })
 */
export declare const providerReady: diagnostics_channel.TracingChannel<"adonisjs.provider.ready", {
    provider: ContainerProviderContract;
}>;
/**
 * Tracing channel for service provider shutdown lifecycle hook.
 * This channel traces when a provider's shutdown() method is called during
 * graceful application termination.
 *
 * @example
 * // Monitor shutdown process
 * providerShutdown.subscribe({
 *   asyncStart(provider) {
 *     console.log('Provider shutting down:', provider.constructor.name)
 *   },
 *   asyncEnd(provider) {
 *     console.log('Provider shutdown complete:', provider.constructor.name)
 *   },
 *   error(provider, error) {
 *     console.error('Provider shutdown error:', provider.constructor.name, error)
 *   }
 * })
 */
export declare const providerShutdown: diagnostics_channel.TracingChannel<"adonisjs.provider.shutdown", {
    provider: ContainerProviderContract;
}>;
/**
 * Tracing channel for preload file import.
 * This channel traces when a preload module is imported during
 * the application start phase.
 *
 * @example
 * // Monitor preload imports
 * preloadImport.subscribe({
 *   asyncStart(data) {
 *     console.log('Importing preload:', data.file.toString())
 *   },
 *   asyncEnd(data) {
 *     console.log('Preload imported:', data.file.toString())
 *   }
 * })
 */
export declare const preloadImport: diagnostics_channel.TracingChannel<"adonisjs.preload.import", {
    file: PreloadNode["file"];
}>;
