import { FastifyReply, FastifyRequest } from "fastify"; import { AuthenticatedRequest } from "../../../common/interfaces/authenticated.request.interface"; import { CreditValidatorInterface } from "../../../common/tokens"; import { CacheService } from "../../../core/cache/services/cache.service"; import { JsonApiService } from "../../../core/jsonapi/services/jsonapi.service"; import { AuditService } from "../../audit/services/audit.service"; import { AssistantService } from "../../assistant/services/assistant.service"; import { AssistantActionService } from "../services/assistant-action.service"; export declare class AssistantActionController { private readonly assistantActions; private readonly assistants; private readonly jsonApi; private readonly auditService; private readonly cacheService; /** * Approving or denying a pending action RESUMES a frozen operator run — * i.e. it runs the LLM. Same seam and same 404 as `AssistantController`. */ private readonly creditValidator?; private readonly crud; constructor(assistantActions: AssistantActionService, assistants: AssistantService, jsonApi: JsonApiService, auditService: AuditService, cacheService: CacheService, /** * Approving or denying a pending action RESUMES a frozen operator run — * i.e. it runs the LLM. Same seam and same 404 as `AssistantController`. */ creditValidator?: CreditValidatorInterface); findById(request: FastifyRequest, reply: FastifyReply, actionId: string): Promise; /** * POST /assistant-actions/:actionId/approve — resolve the pending action and * resume the frozen operator run with approval. Synchronously returns the * final assistant message (JSON:API) with the resolved action included. */ approve(request: AuthenticatedRequest, reply: FastifyReply, actionId: string): Promise; /** * POST /assistant-actions/:actionId/deny — resolve the pending action and * resume with denial. Returns the wrap-up assistant message with the * resolved action included. */ deny(request: AuthenticatedRequest, reply: FastifyReply, actionId: string): Promise; /** * 404 when the caller's plan carries no AI, then the ordinary credit check. * * Order matters and mirrors `AssistantController`: an AI-free company must * never receive a 402, because "pay and you can have this" tells them AI * exists. Resuming the run is an unmetered LLM turn without both checks. */ private gate; private resolve; } //# sourceMappingURL=assistant-action.controller.d.ts.map