/** * Aplicación propietaria del evento o capacidad consumida por Automation. * * Los valores forman parte del contrato HTTP/event-driven y no deben * traducirse ni depender del nombre visible de la aplicación. */ export declare enum AutomationSourceApplication { /** Automations y sus capacidades Core. */ AUTOMATIONS = "automations", /** Gestión de conversaciones y mensajería conversacional. */ CONVERSATIONS = "conversations", /** Gestión de contactos y organizaciones. */ CONTACTS = "contacts", /** Gestión de tickets y soporte. */ TICKETS = "tickets", /** Campañas y operaciones de marketing. */ MARKETING = "marketing", /** Procesos y oportunidades comerciales. */ SALES = "sales", /** Telefonía y llamadas. */ CALLS = "calls", /** Comunicaciones salientes como email y SMS. */ COMMUNICATIONS = "communications", /** Formularios y captura estructurada de datos. */ FORMS = "forms", /** Conectores e integraciones externas. */ INTEGRATIONS = "integrations", /** Acceso y transformación de datos. */ DATA = "data", /** Agentes, modelos y herramientas de inteligencia artificial. */ AI = "ai", /** Bases de conocimiento, documentos y búsqueda semántica. */ KNOWLEDGE = "knowledge", /** Propietario externo o no clasificado; no debe usarse como fallback. */ GENERIC = "generic" } export type AutomationJsonValue = string | number | boolean | null | AutomationJsonObject | AutomationJsonValue[]; /** Objeto JSON transportable entre aplicaciones y Automation. */ export interface AutomationJsonObject { [key: string]: AutomationJsonValue; } /** * Schema JSON deliberadamente abierto. Cada aplicación es propietaria de la * validación del schema que publica en su catálogo de capacidades. */ export interface AutomationJsonSchema extends AutomationJsonObject { type?: string; title?: string; description?: string; required?: string[]; properties?: { [key: string]: AutomationJsonSchema; }; } export interface AutomationPageRequest { skip: number; limit: number; } export interface AutomationPagedResult { items: T[]; total: number; skip: number; limit: number; } export interface AutomationError { code: string; message: string; details?: AutomationJsonObject | null; } /** Referencia estable con la identidad visible al iniciar una ejecución. */ export interface AutomationCustomerReference { id: string; displayNameSnapshot?: string | null; } /** Referencia transversal a una entidad perteneciente a una aplicación. */ export interface AutomationResourceReference { /** Aplicación propietaria de la entidad. */ sourceApplication: AutomationSourceApplication; /** Tipo estable dentro de la aplicación, por ejemplo ticket o campaign. */ resourceType: string; /** Identificador en la aplicación propietaria. */ id: string; /** Nombre informativo capturado al crear la referencia. */ displayNameSnapshot?: string | null; } /** * Contexto CRM opcional asociado a un evento o ejecución. * Permite representar escenarios B2C, B2B o un contacto perteneciente a una * empresa sin depender de los contratos internos del módulo Contacts. */ export interface AutomationCustomer { contact?: AutomationCustomerReference | null; business?: AutomationCustomerReference | null; }