import { Request, Response, NextFunction } from 'express'; import { MemoryModule } from '../../modules/memory/memory.module.js'; import { DocumentAdviceService } from '../../services/document-advice.service.js'; import { SchedulerService } from '../../services/scheduler.service.js'; import { WorkflowExecutionService } from '../../services/workflow-execution.service.js'; import '../../modules/memory/base.memory.js'; import '../../types/document.js'; import '../../types/list.js'; import '../../types/memory.js'; import '../../types/schedule.js'; import '../../types/stream.js'; import '../../types/connector.js'; import '../../modules/models/model.module.js'; import '../../modules/models/base.model.js'; import '../../services/job-runner.service.js'; import '../../services/user-workflow.service.js'; import '../../services/workflow-variable-resolver.service.js'; import '../../modules/a2a/a2a.module.js'; import '@a2a-js/sdk'; import '../../services/tool-calling.service.js'; import '../../modules/mcp/mcp.module.js'; import '../../types/mcp.js'; import '@modelcontextprotocol/sdk/client/sse.js'; import '@modelcontextprotocol/sdk/client/stdio.js'; import '@modelcontextprotocol/sdk/client/streamableHttp.js'; declare class DocumentApiController { private memoryModule; private workflowExecutionService; private documentAdviceService; private schedulerService; constructor(memoryModule: MemoryModule, workflowExecutionService: WorkflowExecutionService, documentAdviceService: DocumentAdviceService, schedulerService: SchedulerService); private getAuthorizedDocument; handleGetAllDocuments: (req: Request, res: Response, next: NextFunction) => Promise; /** * Union of the filter sets via the provider's single-query method when * available; otherwise per-set fetch merged in memory. The fallback also * emulates date range, summary and offset/limit so old providers stay * correct (just slower). */ private listDocumentsBySets; handleGetDocument: (req: Request, res: Response, next: NextFunction) => Promise; handleUpdateDocument: (req: Request, res: Response, next: NextFunction) => Promise; /** * Updates only a single slot's workflow executionVariables (merge, not * replace). Exists as a separate endpoint so variable edits don't have to * round-trip the whole document — full-document update payloads can be * blocked by customer-side network policies (WAF) inspecting the body. */ handleUpdateSlotVariables: (req: Request, res: Response, next: NextFunction) => Promise; handleDeleteDocument: (req: Request, res: Response, next: NextFunction) => Promise; /** * Soft delete: marks the document hidden instead of removing it. Hidden * documents drop out of every read path (the provider filters them), so * this is what user-facing "delete" buttons call. Hard delete stays on * `delete/:id` for admin tooling. */ handleHideDocument: (req: Request, res: Response, next: NextFunction) => Promise; handleCreateDocument: (req: Request, res: Response, next: NextFunction) => Promise; handleSetAutoRefresh: (req: Request, res: Response, next: NextFunction) => Promise; handleFillSlot: (req: Request, res: Response, next: NextFunction) => Promise; handleFillSlotStream: (req: Request, res: Response) => Promise; handleGenerateAdviceStream: (req: Request, res: Response) => Promise; } export { DocumentApiController };