import http from 'http';
import https from 'https';
import type { AnyServiceLocals, RequestLocals, ServiceExpress, ServiceLocals, ServiceStartOptions } from '../types.js';
import type { ConfigurationSchema } from '../config/schema.js';
export declare function startApp<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals>(startOptions: ServiceStartOptions<SLocals, RLocals>): Promise<ServiceExpress<SLocals>>;
export type StartAppFn<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>, RLocals extends RequestLocals = RequestLocals> = typeof startApp<SLocals, RLocals>;
export declare function shutdownApp<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>>(app: ServiceExpress<SLocals>): Promise<void>;
export declare function listen<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>>(app: ServiceExpress<SLocals>, shutdownHandler?: () => Promise<void>): Promise<http.Server<typeof http.IncomingMessage, typeof http.ServerResponse> | https.Server<typeof http.IncomingMessage, typeof http.ServerResponse>>;
export type ListenFn<SLocals extends AnyServiceLocals = ServiceLocals<ConfigurationSchema>> = typeof listen<SLocals>;
