import type { ExecuteFunctionOutputs } from "./ExecuteFunction"; import type { IActivityContext, IActivityHandler } from "../../IActivityHandler"; export interface FunctionInputs { /** The inputs to the function. */ subworkflow: ExecuteFunctionOutputs; argumentsType?: "any" | "{ addressCandidate: esri.AddressCandidate }" | "{ extent: esri.Extent }" | "{ featureSet: esri.FeatureSet }" | "{ geometry: esri.Geometry }" | "{ graphic: esri.Graphic }" | "{ id: number; name: string; location: esri.Point; }" | "{ layer: esri.Layer }" | "{ multiPoint: esri.Multipoint }" | "{ point: esri.Point }" | "{ polygon: esri.Polygon }" | "{ polyline: esri.Polyline }" | "{ portalGroup: esri.PortalGroup }" | "{ portalUser: esri.PortalUser }" | "{ spatialReference: esri.SpatialReference }" | "{ symbol: esri.Symbol }" | string; resultType?: "any" | "ArrayBuffer" | "boolean" | "Date" | "Error" | "Function" | "number" | "number[]" | "Object" | "string" | "string[]" | "esri.Graphic" | "esri.Extent" | "esri.Geometry" | "esri.Multipoint" | "esri.Point" | "esri.Polygon" | "esri.Polyline" | "esri.PortalGroup" | "esri.PortalUser" | "esri.SpatialReference" | "esri.Layer" | "esri.Symbol" | "esri.AddressCandidate" | "esri.FeatureSet" | "{ id: number; name: string; location: esri.Point; }" | string; } export interface FunctionOutputs { /** @description The input arguments to the function. This will only be populated if the function is called by an Execute Function activity. */ arguments?: Record; /** @description A function to set the result of the function which will be returned to the Execute Function activity that called the Function activity. */ setResult: (value: any) => void; } export declare class Function implements IActivityHandler { static readonly action = "gcx:wf:core::Subworkflow"; static readonly suite = "gcx:wf:builtin"; execute(inputs: FunctionInputs, context: IActivityContext): FunctionOutputs; }