import type { App } from './app'; import type { TekirServer } from './server/server'; import type { Logger } from '@tekir/logger'; /** * Store the global app, server, and logger references for the current Tekir context. * @param app - The application container * @param server - The Tekir HTTP server * @param logger - The logger instance */ export declare function setContainer(app: App, server: TekirServer, logger: Logger): void; /** * Retrieve the global App instance. Throws if `tekir()` has not been called. * @returns The current App container * @throws {Error} If the app has not been initialized */ export declare function getApp(): App; /** * Retrieve the global TekirServer instance. Throws if `tekir()` has not been called. * @returns The current TekirServer * @throws {Error} If the server has not been initialized */ export declare function getServer(): TekirServer; /** * Retrieve the global Logger instance. Throws if `tekir()` has not been called. * @returns The current Logger * @throws {Error} If the logger has not been initialized */ export declare function getLogger(): Logger; /** * Retrieve the Router from the global server instance. * @returns The current Router */ export declare function getRouter(): import(".").Router; /** * Create a lazy proxy to a named service. The service is resolved from the container * on first property access, enabling use before the app is fully booted. * @param name - The service identifier registered in the App container * @returns A proxy that forwards property access to the resolved service * * @example * const db = service('db') * // Later, when app is booted: * db.query('SELECT * FROM users') */ export declare function service(name: string): T;