import type { ApplicationService } from '../src/types.ts';
/**
 * REPL Service Provider configures the interactive Node.js REPL
 * for AdonisJS applications
 *
 * This provider sets up:
 * - REPL instance with history file support
 * - Helper methods for importing modules and making container bindings
 * - Quick access methods for loading common services (app, router, etc.)
 * - Utility methods for development and debugging
 *
 * @example
 * const provider = new ReplServiceProvider(app)
 * provider.register()
 * await provider.boot()
 */
export default class ReplServiceProvider {
    protected app: ApplicationService;
    /**
     * REPL service provider constructor
     *
     * @param app - The application service instance
     */
    constructor(app: ApplicationService);
    /**
     * Registers the REPL binding
     *
     * Creates a singleton binding for the REPL with history file
     * support in the user's home directory.
     *
     * @example
     * const provider = new ReplServiceProvider(app)
     * provider.register()
     * const repl = await app.container.make('repl')
     */
    register(): void;
    /**
     * Registering REPL bindings during provider boot
     *
     * Adds helper methods to the REPL instance including:
     * - importDefault: Import default export from modules
     * - importAll: Import all files from a directory
     * - make: Create instances using container.make
     * - load* methods: Quick access to common services
     * - loadHelpers: Load utility helper functions
     *
     * @example
     * await provider.boot()
     * // REPL now has helper methods available
     */
    boot(): Promise<void>;
}
