/** * Copyright 2025 © BeeAI a Series of LF Projects, LLC * SPDX-License-Identifier: Apache-2.0 */ type ServerFactory = (input: TInput, config?: Record) => Promise; type FactoryMember = abstract new (...args: any[]) => TInput | (new (...args: any[]) => TInput) | ((...args: any[]) => TInput); declare abstract class Server { protected config: TConfig; static readonly factories: Map>; readonly members: TInput[]; protected readonly metadataByInput: Map; constructor(config: TConfig); static registerFactory(this: typeof Server, ref: FactoryMember, factory: ServerFactory, override?: boolean): void; register(input: TInput, metadata?: TMetadata): this; registerMany(input: TInput[]): this; deregister(input: TInput): this; protected getFactory(input: TInput): ServerFactory; abstract serve(): void; } export { type FactoryMember, Server };