import { type ResolvedElicitationOptions } from './interfaces/elicitation-options.interface'; import { ElicitationService } from './services/elicitation.service'; /** Status-setter contract — covers Express's `Response.status()` and Fastify's `FastifyReply.status()`. */ interface StatusSettable { status(code: number): unknown; } interface ApiKeyFormBody { apiKey: string; } interface ConfirmFormBody { action: 'confirm' | 'cancel'; } /** * Static elicitation controller. Path prefix is applied externally via * `RouterModule.register({ path: apiPrefix, module: McpElicitationModule })` * so the controller stays decoration-only — no class factory. * * `@UseGuards(ElicitationGuardComposite)` defers guard composition to a * runtime composite that reads `ElicitationModuleOptions.guards`. */ export declare class ElicitationController { private readonly opts; private readonly service; constructor(opts: ResolvedElicitationOptions, service: ElicitationService); getStatus(id: string): Promise<{ elicitationId: string; status: "pending" | "complete" | "expired"; createdAt: Date; expiresAt: Date; completed: boolean; result: { success: boolean; action: "cancel" | "confirm"; completedAt: Date; } | undefined; }>; renderApiKeyForm(id: string, res: StatusSettable): Promise; submitApiKeyForm(id: string, body: ApiKeyFormBody, res: StatusSettable): Promise; renderConfirmationForm(id: string, res: StatusSettable): Promise; submitConfirmationForm(id: string, body: ConfirmFormBody, res: StatusSettable): Promise; /** * Render the error page and signal the framework to write a 400 status. * Returning the HTML lets Nest commit the response normally. */ private renderError; } export {}; //# sourceMappingURL=elicitation.controller.d.ts.map