import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import type { MoodleClient } from "../moodle/client.js"; import type { MoodleCapabilities } from "../moodle/capabilities.js"; import type { Authenticator } from "../auth/authenticator.js"; import type { LoadedPlugin } from "../plugins/contracts.js"; /** * Type for a log function used by the factory. * Matches the signature of the existing log() in logging/index.ts */ export type LogFn = (level: "debug" | "info" | "warn" | "error", message: string, data?: unknown) => void; /** * Shared server factory — creates a fully configured MCP server * instance ready for the stdio core and future external wrappers. */ export interface ServerFactoryOptions { name: string; version: string; moodleClient: MoodleClient; capabilities: MoodleCapabilities; authenticator: Authenticator; log: LogFn; /** Extra validated plugin bundles from the plugin loader */ extraPlugins?: LoadedPlugin[]; } export interface ServerFactoryResult { server: Server; toolCount: number; } export declare function createServer(opts: ServerFactoryOptions): ServerFactoryResult; //# sourceMappingURL=factory.d.ts.map