import { MastraBase } from '../base.js'; /** * Base class for server adapters that provides app storage and retrieval. * * This class extends MastraBase to get logging capabilities and provides * a framework-agnostic way to store and retrieve the server app instance * (e.g., Hono, Express). * * Server adapters (like MastraServer from @mastra/hono or @mastra/express) extend this * base class to inherit the app storage functionality while adding their * framework-specific route registration and middleware handling. * * @template TApp - The type of the server app (e.g., Hono, Express Application) * * @example * ```typescript * // After server creation, the app is accessible via Mastra * const app = mastra.getServerApp(); * const response = await app.fetch(new Request('http://localhost/health')); * ``` */ export declare abstract class MastraServerBase extends MastraBase { #private; constructor({ app, name }: { app: TApp; name?: string; }); /** * Get the app instance. * * Returns the server app that was passed to the constructor. This allows users * to access the underlying server framework's app for direct operations * like calling routes via app.fetch() (Hono) or using the app for testing. * * @template T - The expected type of the app (defaults to TApp) * @returns The app instance cast to T. Callers are responsible for ensuring T matches the actual app type. * * @example * ```typescript * const app = adapter.getApp(); * const response = await app.fetch(new Request('http://localhost/api/agents')); * ``` */ getApp(): T; /** * Protected getter for subclasses to access the app. * This allows subclasses to use `this.app` naturally. */ protected get app(): TApp; } //# sourceMappingURL=base.d.ts.map