/** * ForgePlatform — Platform Mode Orchestrator * * Wraps ForgeHost to provide a platform-level lifecycle with * domain-based multi-app routing, shared services, and * platform-specific banner output. * * Usage: * * import { ForgePlatform, definePlatform } from 'threadforge'; * * const config = definePlatform({ ... }); * const platform = new ForgePlatform(config); * await platform.start(); */ interface PlatformApp { domains?: string[]; domain?: string; static?: string | null; [key: string]: unknown; } interface PlatformBlock { globalAuth?: boolean; apps: Record; [key: string]: unknown; } interface RawPlatformConfig { platform: PlatformBlock; [key: string]: unknown; } interface PlatformConfigWrapped { _isPlatformConfig: true; _raw: RawPlatformConfig; [key: string]: unknown; } type PlatformConfigInput = PlatformConfigWrapped | RawPlatformConfig; interface HostMeta { services: string[]; schema: string; domain?: string; [key: string]: unknown; } interface AppInfo { domains: string[]; services: string[]; schema: string; static: string | null; } interface PlatformStatus { platformMode: true; apps: Record; [key: string]: unknown; } interface SupervisorOptions { [key: string]: unknown; } export declare class ForgePlatform { private _platformConfig; private _options; private _host; private _resolvedConfig; private _hostMeta; private _platformApps; /** * @param platformConfig - Output from definePlatform() or raw platform config * @param options - Supervisor options override */ constructor(platformConfig: PlatformConfigInput, options?: SupervisorOptions); /** * Start the platform: resolve config, create ForgeHost, start. */ start(): Promise; /** * Gracefully shut down the platform. */ shutdown(): Promise; /** * Get the apps map: appId -> { domains, services, schema } */ get apps(): Record; /** * Get the host metadata (from ForgeHost). */ get hostMeta(): Record; /** * Get platform status with per-app breakdown. */ status(): PlatformStatus | null; /** * Collect all service names that belong to a project (not shared). */ private _collectProjectServiceNames; private _printPlatformBanner; } export {}; //# sourceMappingURL=ForgePlatform.d.ts.map