import { ApplicationContract } from '@ioc:Adonis/Core/Application';
/**
 * The application provider that sticks all core components
 * to the container.
 */
export default class AppProvider {
    protected app: ApplicationContract;
    constructor(app: ApplicationContract);
    static needsApplication: boolean;
    /**
     * Find if web or test environment
     */
    private isWebOrTestEnvironment;
    /**
     * Additional providers to load
     */
    provides: string[];
    /**
     * Register `HttpExceptionHandler` to the container.
     */
    protected registerHttpExceptionHandler(): void;
    /**
     * Registering the health check provider
     */
    protected registerHealthCheck(): void;
    /**
     * Registering the assets manager
     */
    protected registerAssetsManager(): void;
    /**
     * Lazy initialize the cors hook, if enabled inside the config
     */
    protected registerCorsHook(): void;
    /**
     * Lazy initialize the static assets hook, if enabled inside the config
     */
    protected registerStaticAssetsHook(): void;
    /**
     * Registers base health checkers
     */
    protected registerHealthCheckers(): void;
    /**
     * Register ace kernel to the container. When the process is started
     * by running an ace command, then the "Adonis/Core/Ace" binding
     * will already be in place and hence we do not overwrite it.
     */
    protected registerAceKernel(): void;
    /**
     * Register utilities object required during testing
     */
    protected registerTestUtils(): void;
    /**
     * Define repl bindings
     */
    protected defineReplBindings(): void;
    /**
     * Define bindings for japa tests
     */
    protected defineTestsBindings(): void;
    /**
     * Registering all required bindings to the container
     */
    register(): void;
    /**
     * Register hooks and health checkers on boot
     */
    boot(): void;
}
