/** * El trigger de SharePoint (`serviceConfig.sharepoint`, 2026-10-12): qué lo * dispara. En un solo sitio para el DTO del api y la pantalla del dashboard. * * ## De dónde llegan (lo que eligió Ariel: «listas y bibliotecas») * * Un trigger mira UNA cosa de un sitio, y se elige cuál: * * - **Una lista** — un elemento creado, cambiado o borrado. * - **Una biblioteca de documentos**, o una carpeta suya — un fichero * creado, cambiado o borrado. * * Por una SUSCRIPCIÓN de Microsoft Graph a la lista (`sites/{s}/lists/{l}`) o * a la raíz de la biblioteca (`drives/{d}/root`), con su renovación por la cron * común. Graph sólo avisa de que «algo cambió»; qué cambió lo cuenta la * consulta delta, con su marca guardada en el trigger. * * ## Nada viene elegido * * Ni el sitio, ni qué se mira, ni los eventos tienen defecto: Activate no se * deja pulsar hasta que esté todo ({@link sharepointTriggerSinContestar}). */ /** El `service` del trigger. */ export declare const SHAREPOINT_TRIGGER_SERVICE = "sharepoint"; /** Qué mira un trigger: una lista o una biblioteca. */ export declare const SHAREPOINT_TRIGGER_SOURCES: readonly ["list", "library"]; export type SharepointTriggerSource = (typeof SHAREPOINT_TRIGGER_SOURCES)[number]; export interface SharepointTriggerEventSpec { /** El `event` que lleva cada entrega. */ type: string; label: string; description: string; /** De qué fuente es. */ source: SharepointTriggerSource; } /** Los eventos que se pueden elegir, en el orden de la pantalla. */ export declare const SHAREPOINT_TRIGGER_EVENT_SPECS: ReadonlyArray; /** Todos los tipos, en el orden de la pantalla. */ export declare const SHAREPOINT_TRIGGER_EVENTS: ReadonlyArray; /** Los de una fuente. */ export declare function sharepointTriggerEventsDe(source: unknown): ReadonlyArray; /** El spec de cada tipo, para el nombre en pantalla y los logs. */ export declare const SHAREPOINT_TRIGGER_EVENT_BY_TYPE: Readonly>; /** «Only when the name contains»: lo más largo que se acepta. */ export declare const SHAREPOINT_TRIGGER_CONTIENE_MAXIMO = 255; /** Lo más largo que se acepta en un id (sitio, lista, biblioteca o carpeta). */ export declare const SHAREPOINT_TRIGGER_ID_MAXIMO = 512; export interface SharepointTriggerConfig { /** El sitio (su id de Graph). Sin defecto. */ siteId: string | null; /** Su nombre, sólo para enseñarlo. */ siteName?: string | null; /** Qué se mira. Sin defecto. */ source: SharepointTriggerSource | null; /** Con `source: 'list'`: la lista. */ listId?: string | null; listName?: string | null; /** Con `source: 'library'`: la biblioteca, y una carpeta opcional. */ driveId?: string | null; driveName?: string | null; /** El id de la carpeta. Vacío = toda la biblioteca. */ folderId?: string | null; /** Su ruta, sólo para enseñarla. */ folderPath?: string | null; /** Sin defecto: `null` o vacío = sin contestar. Sólo cuentan los de la fuente. */ events: string[] | null; /** Sólo lo que en el título (lista) o el nombre (biblioteca) contiene esto. */ nameContains?: string | null; } /** * Lo que falta por contestar antes de activar, por nombre de campo y en el * orden de la pantalla. Vacío = se puede activar. Un evento de la OTRA fuente * no cuenta: no llegaría nunca. */ export declare function sharepointTriggerSinContestar(cfg: Partial | null | undefined): string[];