import { Application } from 'express'; import { IncomingMessage } from 'node:http'; import { ProjectType } from '@rozenite/tools'; import { ServerResponse } from 'node:http'; export declare const createScopedMiddleware: (prefix: string, middleware: MiddlewareHandler) => MiddlewareHandler; export declare const initializeRozenite: (options: RozeniteConfig) => RozeniteInstance; export declare type MiddlewareHandler = (req: MiddlewareRequest, res: ServerResponse, next: MiddlewareNext) => void; export declare type MiddlewareNext = (error?: unknown) => void; export declare type MiddlewareRequest = IncomingMessage & { url?: string; }; export declare type RozeniteConfig = { projectRoot: string; include?: string[]; exclude?: string[]; /** * Plugin identifiers that should NOT maintain their UI state when not active. * These panels will be destroyed instead of hidden when switching between panels. * If not provided (default), all plugins will persist their state. */ destroyOnDetachPlugins?: string[]; /** * Project type of the project. If not provided, Rozenite will try to guess it based on the project root. * Useful if built-in heuristics fail to detect the project type. */ projectType?: ProjectType; /** * The log level to use. * @default 'info' */ logLevel?: RozeniteLogLevel; }; export declare type RozeniteInstance = { middleware: RozeniteMiddleware; devModePackage: { name: string; path: string; } | null; dispose: () => Promise; }; declare type RozeniteLogLevel = 'none' | 'error' | 'warn' | 'info' | 'debug'; export declare type RozeniteMiddleware = Application; export { }