import { createContainer, type Token } from './container'; import type { Middleware, RuntimeContext } from '../action/types'; import type { Plugin } from './plugin'; export type ServiceProvider = { token: Token; useValue: T; }; export type CreateAppOptions = { services?: ServiceProvider[]; }; export type RuntimeApp = { container: ReturnType; readonly plugins: Plugin[]; readonly middlewares: Middleware[]; initialized: boolean; createContext(): Promise>; plugin(plugin: Plugin): RuntimeApp; use(middleware: Middleware): RuntimeApp; run(): Promise; }; export declare function createApp(options?: CreateAppOptions): RuntimeApp;