import { AutomationJsonObject, AutomationJsonSchema, AutomationSourceApplication } from '../Common'; /** Forma en que una instancia del trigger puede iniciar una ejecución. */ export declare enum AutomationTriggerActivationKind { MANUAL = "manual", DOMAIN_EVENT = "domainEvent", WEBHOOK = "webhook", SCHEDULE = "schedule" } /** Entidad principal que queda asociada a la ejecución iniciada. */ export declare enum AutomationTriggerSubjectKind { NONE = "none", CONTACT = "contact", BUSINESS = "business", CONVERSATION = "conversation", TICKET = "ticket", FORM_SUBMISSION = "formSubmission", WEBHOOK = "webhook", SCHEDULE = "schedule" } /** Política histórica de reingreso para la misma identidad CRM. */ export declare enum AutomationTriggerReentryMode { /** Cada ocurrencia elegible puede crear una ejecución. */ EVERY_OCCURRENCE = "everyOccurrence", /** La identidad primaria del evento sólo ingresa una vez. */ ONCE_PER_SUBJECT = "oncePerSubject", /** El contacto sólo ingresa una vez en la automatización. */ ONCE_PER_CONTACT = "oncePerContact", /** La dirección/canal del contacto sólo ingresa una vez. */ ONCE_PER_CONTACT_ADDRESS = "oncePerContactAddress" } /** Alcance histórico utilizado al aplicar una política de reingreso. */ export declare enum AutomationTriggerHistoryScope { /** Publicar una versión nueva no reinicia el historial. */ FLOW = "flow", /** Cada versión publicada mantiene su propio historial. */ FLOW_VERSION = "flowVersion" } /** Control de ejecuciones simultáneas para una misma identidad. */ export declare enum AutomationTriggerConcurrencyMode { ALLOW = "allow", SINGLE_ACTIVE_PER_SUBJECT = "singleActivePerSubject", SINGLE_ACTIVE_PER_CONTACT = "singleActivePerContact", SINGLE_ACTIVE_PER_CONTACT_ADDRESS = "singleActivePerContactAddress" } /** * Evento seleccionable dentro de un trigger de módulo. * * `code` es la opción estable usada por el diseñador. `eventType` es el * identificador contractual resuelto por backend y nunca debe solicitarse * como texto libre al usuario. */ export interface AutomationTriggerEventDefinition { code: string; name: string; description?: string | null; sourceApplication: AutomationSourceApplication; eventType: string; eventVersion: number; subjectKind: AutomationTriggerSubjectKind; configurationSchema?: AutomationJsonSchema | null; supportsEntryFilters: boolean; supportedReentryModes: AutomationTriggerReentryMode[]; defaultReentryMode: AutomationTriggerReentryMode; supportedConcurrencyModes: AutomationTriggerConcurrencyMode[]; defaultConcurrencyMode: AutomationTriggerConcurrencyMode; } /** Metadata de trigger publicada junto con una definición de nodo. */ export interface AutomationTriggerDefinition { activationKind: AutomationTriggerActivationKind; defaultEventCode: string; events: AutomationTriggerEventDefinition[]; } /** * Selección normalizada persistida en el Entry Point. * La configuración se valida contra el schema del evento seleccionado. */ export interface AutomationTriggerBinding { definitionCode: string; definitionVersion: number; eventCode: string; activationKind: AutomationTriggerActivationKind; configuration: AutomationJsonObject; } /** Política aplicada antes de crear una ejecución. */ export interface AutomationTriggerAdmissionPolicy { reentryMode: AutomationTriggerReentryMode; historyScope: AutomationTriggerHistoryScope; concurrencyMode: AutomationTriggerConcurrencyMode; } /** * Referencia estable a una propiedad estándar o personalizada. * `nameKey` es la identidad; nombre y tipo son snapshots informativos. */ export interface AutomationTriggerPropertyReference { resourceType: string; nameKey: string; valueType: string; displayNameSnapshot?: string | null; } export declare enum AutomationWebhookAuthenticationMode { NONE = "none", SHARED_SECRET = "sharedSecret", HMAC_SHA256 = "hmacSha256" } export declare enum AutomationScheduleKind { ONCE = "once", INTERVAL = "interval", DAILY = "daily", WEEKLY = "weekly", MONTHLY = "monthly", CRON = "cron" }