import type { Application } from './Application.js'; /** * Base class for framework/service providers. */ export declare abstract class ServiceProvider { /** * When `true`, {@link Application.register} does not call `register` until a key from {@link ServiceProvider.provides} is first resolved. */ isDeferred: boolean; /** * Abstract names this provider registers; used with {@link ServiceProvider.isDeferred}. * * @returns List of abstract keys this provider will bind. */ provides(): string[]; /** * Register bindings and configuration into the application. * * @param app - Owning application. */ abstract register(app: Application): void; /** * Perform post-registration boot logic. * * @param app - Owning application. */ abstract boot(app: Application): void; } //# sourceMappingURL=ServiceProvider.d.ts.map