import { AutomationJsonObject, AutomationJsonSchema, AutomationJsonValue, AutomationPageRequest, AutomationSourceApplication } from '../Common'; import { AutomationCapabilityReference } from '../Capabilities'; import { AutomationTriggerDefinition } from '../Triggers'; import { AutomationNodeHandle, AutomationNodeKind } from '../Flows'; export declare enum AutomationNodePropertyEditor { STRING = "string", NUMBER = "number", BOOLEAN = "boolean", PASSWORD = "password", JSON = "json", DATE = "date", FILE = "file", CODE = "code", OPTIONS = "options", MULTI_OPTIONS = "multiOptions", ASYNC_OPTIONS = "asyncOptions", ASYNC_MULTI_OPTIONS = "asyncMultiOptions" } export declare enum AutomationNodeVisibilityLogicalOperator { ALL = "all", ANY = "any" } export declare enum AutomationNodeConditionOperator { EQUALS = "equals" } export interface AutomationNodeCondition { propertyId: string; operator: AutomationNodeConditionOperator; value?: AutomationJsonValue; } export interface AutomationNodeVisibilityRule { logicalOperator: AutomationNodeVisibilityLogicalOperator; conditions: AutomationNodeCondition[]; } export interface AutomationNodePropertyUi { tabId: string; tabLabel: string; order: number; labelKey?: string | null; placeholder?: string | null; rows?: number | null; numberMin?: number | null; numberMax?: number | null; step?: number | null; acceptVariable?: boolean | null; acceptEmojis?: boolean | null; allowMaximizeInput?: boolean | null; itemProperties: AutomationNodePropertyDefinition[]; } export interface AutomationNodeDefinition { code: string; version: number; kind: AutomationNodeKind; sourceApplication: AutomationSourceApplication; name: string; description?: string | null; icon?: string | null; color?: string | null; tags: string[]; requiredPermissions: string[]; capability?: AutomationCapabilityReference | null; /** Metadata disponible únicamente para nodos que pueden iniciar un Flow. */ trigger?: AutomationTriggerDefinition | null; inputs: AutomationNodeHandle[]; outputs: AutomationNodeHandle[]; properties: AutomationNodePropertyDefinition[]; inputSchema?: AutomationJsonSchema | null; outputSchema?: AutomationJsonSchema | null; enabled: boolean; } export interface AutomationNodePropertyDefinition { id: string; label: string; description?: string | null; editor: AutomationNodePropertyEditor; required: boolean; defaultValue?: AutomationJsonValue; schema?: AutomationJsonSchema | null; options: AutomationNodeOption[]; optionsCapabilityCode?: string | null; ui: AutomationNodePropertyUi; showWhen?: AutomationNodeVisibilityRule | null; hideWhen?: AutomationNodeVisibilityRule | null; } export interface AutomationNodeOption { id: string; label: string; description?: string | null; imageUrl?: string | null; metadata?: AutomationJsonObject | null; } export interface AutomationNodeDefinitionQuery extends AutomationPageRequest { search?: string | null; kinds?: AutomationNodeKind[] | null; sourceApplications?: AutomationSourceApplication[] | null; tags?: string[] | null; enabledOnly: boolean; } export interface AutomationNodeOptionsRequest { definitionCode: string; definitionVersion: number; propertyId: string; currentValues: AutomationJsonObject; context: AutomationJsonObject; /** Optional provider-defined, case-insensitive text search. */ search?: string | null; /** Opaque cursor returned by the previous response. */ continuationToken?: string | null; /** Preferred page size. The API clamps it to the supported range (1-200). */ limit?: number; } export interface AutomationNodeOptionsResult { options: AutomationNodeOption[]; /** Opaque cursor for the next page; null or omitted means the last page. */ continuationToken?: string | null; }