import { IUiPath } from '../core/index'; /** * Simplified universal pagination cursor * Used to fetch next/previous pages */ interface PaginationCursor { /** Opaque string containing all information needed to fetch next page */ value: string; } /** * Discriminated union for pagination methods - ensures cursor and jumpToPage are mutually exclusive */ type PaginationMethodUnion = { cursor?: PaginationCursor; jumpToPage?: never; } | { cursor?: never; jumpToPage?: number; } | { cursor?: never; jumpToPage?: never; }; /** * Pagination options. Users cannot specify both cursor and jumpToPage. */ type PaginationOptions = { /** Size of the page to fetch (items per page) */ pageSize?: number; } & PaginationMethodUnion; /** * Paginated response containing items and navigation information */ interface PaginatedResponse { /** The items in the current page */ items: T[]; /** Total count of items across all pages (if available) */ totalCount?: number; /** Whether more pages are available */ hasNextPage: boolean; /** Cursor to fetch the next page (if available) */ nextCursor?: PaginationCursor; /** Cursor to fetch the previous page (if available) */ previousCursor?: PaginationCursor; /** Current page number (1-based, if available) */ currentPage?: number; /** Total number of pages (if available) */ totalPages?: number; /** Whether this pagination type supports jumping to arbitrary pages */ supportsPageJump: boolean; } /** * Response for non-paginated calls that includes both data and total count */ interface NonPaginatedResponse { items: T[]; totalCount?: number; } /** * Helper type for defining paginated method overloads * Creates a union type of all ways pagination can be triggered */ type HasPaginationOptions = (T & { pageSize: number; }) | (T & { cursor: PaginationCursor; }) | (T & { jumpToPage: number; }); /** * Pagination types supported by the SDK */ declare enum PaginationType { OFFSET = "offset", TOKEN = "token" } /** * Interface for service access methods needed by pagination helpers */ interface PaginationServiceAccess { get(path: string, options?: any): Promise<{ data: T; }>; post(path: string, body?: any, options?: any): Promise<{ data: T; }>; requestWithPagination(method: string, path: string, paginationOptions: PaginationOptions, options: RequestWithPaginationOptions): Promise>; } /** * Field names for extracting data from paginated responses. */ interface PaginationFieldNames { itemsField?: string; totalCountField?: string; continuationTokenField?: string; } /** * Options for the requestWithPagination method in BaseService. */ interface RequestWithPaginationOptions extends RequestSpec { pagination: PaginationFieldNames & { paginationType: PaginationType; paginationParams?: { pageSizeParam?: string; offsetParam?: string; tokenParam?: string; countParam?: string; convertToSkip?: boolean; zeroBased?: boolean; }; }; } /** * HTTP methods supported by the API client */ type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS'; /** * Supported response types for API requests */ type ResponseType = 'json' | 'text' | 'blob' | 'arraybuffer' | 'stream'; /** * Query parameters type with support for arrays and nested objects */ type QueryParams = Record | null | undefined>; /** * Standard HTTP headers type */ type Headers = Record; /** * Options for request retries */ interface RetryOptions { /** Maximum number of retry attempts */ maxRetries?: number; /** Base delay between retries in milliseconds */ retryDelay?: number; /** Whether to use exponential backoff */ useExponentialBackoff?: boolean; /** Status codes that should trigger a retry */ retryableStatusCodes?: number[]; } /** * Options for request timeouts */ interface TimeoutOptions { /** Request timeout in milliseconds */ timeout?: number; /** Whether to abort the request on timeout */ abortOnTimeout?: boolean; } /** * Options for request body transformation */ interface BodyOptions { /** Whether to stringify the body */ stringify?: boolean; /** Content type override */ contentType?: string; } /** * Pagination metadata for API requests */ interface PaginationMetadata { /** Type of pagination used by the API endpoint */ paginationType: PaginationType; /** Response field containing items array (defaults to 'value') */ itemsField?: string; /** Response field containing total count (defaults to '@odata.count') */ totalCountField?: string; /** Response field containing continuation token (defaults to 'continuationToken') */ continuationTokenField?: string; } /** * Base interface for all API requests */ interface RequestSpec { /** HTTP method for the request */ method?: HttpMethod; /** URL endpoint for the request */ url?: string; /** Query parameters to be appended to the URL */ params?: QueryParams; /** HTTP headers to include with the request */ headers?: Headers; /** Raw body content (takes precedence over data) */ body?: unknown; /** Expected response type */ responseType?: ResponseType; /** Request timeout options */ timeoutOptions?: TimeoutOptions; /** Retry behavior options */ retryOptions?: RetryOptions; /** Body transformation options */ bodyOptions?: BodyOptions; /** AbortSignal for cancelling the request */ signal?: AbortSignal; /** Pagination metadata for the request */ pagination?: PaginationMetadata; } interface ApiResponse { data: T; } /** * Base class for all UiPath SDK services. * * Provides common functionality for authentication, configuration, and API communication. * All service classes extend this base to inherit dependency injection and HTTP client access. * * This class implements the dependency injection pattern where services receive a configured * UiPath instance. The ApiClient is created internally and handles all HTTP operations * including authentication token management. * * @remarks * Service classes should extend this base and call `super(uiPath)` in their constructor. * Protected HTTP methods (get, post, put, patch, delete) are available to all subclasses. * */ declare class BaseService { #private; /** * SDK configuration (read-only). Available to subclasses so they can * fall back to init-time defaults like `folderKey`. */ protected readonly config: { folderKey?: string; }; /** * Creates a base service instance with dependency injection. * * Extracts configuration, execution context, and token manager from the UiPath instance * to initialize an authenticated API client. The ApiClient handles all HTTP operations * and token management internally. * * @param instance - UiPath SDK instance providing authentication and configuration. * Services receive this via dependency injection in the modular pattern. * @param headers - Optional default headers to include in every request (e.g. `x-uipath-external-user-id` for * CAS external-app auth) * * @example * ```typescript * // Services automatically call this via super() * export class EntityService extends BaseService { * constructor(instance: IUiPath) { * super(instance); // Initializes the internal ApiClient * } * } * * // Usage in modular pattern * import { UiPath } from '@uipath/uipath-typescript/core'; * import { Entities } from '@uipath/uipath-typescript/entities'; * * const sdk = new UiPath(config); * await sdk.initialize(); * const entities = new Entities(sdk); * ``` */ constructor(instance: IUiPath, headers?: Record); /** * Gets a valid authentication token, refreshing if necessary. * Use this when you need to manually add Authorization headers (e.g., direct uploads). * * @returns Promise resolving to a valid access token string * @throws AuthenticationError if no token is available or refresh fails */ protected getValidAuthToken(): Promise; /** * Creates a service accessor for pagination helpers * This allows pagination helpers to access protected methods without making them public */ protected createPaginationServiceAccess(): PaginationServiceAccess; protected request(method: string, path: string, options?: RequestSpec): Promise>; protected requestWithSpec(spec: RequestSpec): Promise>; protected get(path: string, options?: RequestSpec): Promise>; protected post(path: string, data?: unknown, options?: RequestSpec): Promise>; protected put(path: string, data?: unknown, options?: RequestSpec): Promise>; protected patch(path: string, data?: unknown, options?: RequestSpec): Promise>; protected delete(path: string, options?: RequestSpec): Promise>; /** * Execute a request with cursor-based pagination */ protected requestWithPagination(method: string, path: string, paginationOptions: PaginationOptions, options: RequestWithPaginationOptions): Promise>; /** * Validates and prepares pagination parameters from options */ private validateAndPreparePaginationParams; /** * Prepares request parameters for pagination based on pagination type */ private preparePaginationRequestParams; /** * Creates a paginated response from API response */ private createPaginatedResponseFromResponse; /** * Determines if there are more pages based on pagination type and metadata */ private determineHasMorePages; } /** * Common enum for job state used across services */ declare enum JobState { Pending = "Pending", Running = "Running", Stopping = "Stopping", Terminating = "Terminating", Faulted = "Faulted", Successful = "Successful", Stopped = "Stopped", Suspended = "Suspended", Resumed = "Resumed", Cancelled = "Cancelled", /** Server-side fallback for an unrecognized or missing job state. */ Unknown = "Unknown" } interface BaseOptions { expand?: string; select?: string; } /** * Common request options interface used across services for querying data */ interface RequestOptions extends BaseOptions { filter?: string; orderby?: string; } /** * Options that scope a name-based lookup (e.g. `getByName`) to a folder. * Provide one of `folderId`, `folderKey`, or `folderPath`. When more than * one is supplied, all are forwarded; the server applies precedence * `folderPath` > `folderKey` > `folderId`. */ interface FolderScopedOptions extends BaseOptions { /** Numeric folder ID. */ folderId?: number; /** Folder key (GUID-formatted string). */ folderKey?: string; /** Slash-delimited folder path, e.g. `'Shared/Finance'`. */ folderPath?: string; } /** * Type for field mapping configuration * Maps source field names to target field names */ type FieldMapping = { [sourceField: string]: string; }; /** * Base service for services that need folder-specific functionality. * * Extends BaseService with additional methods for working with folder-scoped resources * in UiPath Orchestrator. Services that work with folders (Assets, Queues) extend this class. * * @remarks * This class provides helper methods for making folder-scoped API calls, handling folder IDs * in request headers, and managing cross-folder queries. */ declare class FolderScopedService extends BaseService { /** * Gets resources in a folder with optional query parameters * * @param endpoint - API endpoint to call * @param folderId - required folder ID * @param options - Query options * @param transformFn - Optional function to transform the response data * @returns Promise resolving to an array of resources */ protected _getByFolder(endpoint: string, folderId: number, options?: Record, transformFn?: (item: T) => R): Promise; /** * Look up a single resource by name on a folder-scoped OData collection. * * Shared by `getByName` implementations across services (Assets, Processes, etc). * Handles: * - Name validation via `validateName` * - Folder header resolution via `resolveFolderHeaders` (folderId → ID/key * header by type, folderPath → encoded path header, falls back to * init-time `config.folderKey` from the `uipath:folder-key` meta tag) * - OData `$filter=Name eq '…'` with single-quote escaping + `$top=1` * - Empty-result → `NotFoundError` with folder context in the message * * The transform step is caller-provided because each resource has its own * PascalCase → camelCase field mapping. * * @param resourceType - Resource label used in validation + error messages (e.g. 'Asset', 'Process') * @param endpoint - Folder-scoped OData collection endpoint * @param name - Resource name to search for * @param options - Folder scoping (`folderId` / `folderKey` / `folderPath`) + OData query options (`expand`, `select`) * @param transform - Maps a raw OData item to the typed response (e.g. PascalCase → camelCase via field map) * @param responseFieldMap - Optional response field map (API → SDK), reversed internally by * `transformOptions` to rewrite SDK field names back to API names in user-supplied * `expand` / `select` (symmetric counterpart to `transform`) * @throws ValidationError when inputs are malformed; NotFoundError when no match */ protected getByNameLookup(resourceType: string, endpoint: string, name: string, options: FolderScopedOptions, transform: (raw: TRaw) => T, responseFieldMap?: FieldMapping): Promise; } /** * Enum for package types */ declare enum PackageType { Undefined = "Undefined", Process = "Process", ProcessOrchestration = "ProcessOrchestration", WebApp = "WebApp", Agent = "Agent", TestAutomationProcess = "TestAutomationProcess", Api = "Api", MCPServer = "MCPServer", BusinessRules = "BusinessRules", CaseManagement = "CaseManagement", Flow = "Flow", Function = "Function" } /** * Enum for job priority */ declare enum JobPriority { Low = "Low", Normal = "Normal", High = "High" } /** * Enum for target framework */ declare enum TargetFramework { Legacy = "Legacy", Windows = "Windows", Portable = "Portable" } /** * Enum for robot size */ declare enum RobotSize { Small = "Small", Standard = "Standard", Medium = "Medium", Large = "Large" } /** * Enum for remote control access */ declare enum RemoteControlAccess { None = "None", ReadOnly = "ReadOnly", Full = "Full" } /** * Enum for process start strategy */ declare enum StartStrategy { All = "All", Specific = "Specific", RobotCount = "RobotCount", JobsCount = "JobsCount", ModernJobsCount = "ModernJobsCount" } /** * Enum for package source type */ declare enum PackageSourceType { Manual = "Manual", Schedule = "Schedule", Queue = "Queue", StudioWeb = "StudioWeb", IntegrationTrigger = "IntegrationTrigger", StudioDesktop = "StudioDesktop", AutomationOpsPipelines = "AutomationOpsPipelines", Apps = "Apps", SAP = "SAP", HttpTrigger = "HttpTrigger", HttpTriggerWithCallback = "HttpTriggerWithCallback", RobotAPI = "RobotAPI", Assistant = "Assistant", CommandLine = "CommandLine", RobotNetAPI = "RobotNetAPI", Autopilot = "Autopilot", TestManager = "TestManager", AgentService = "AgentService", ProcessOrchestration = "ProcessOrchestration", PluginEcosystem = "PluginEcosystem", PerformanceTesting = "PerformanceTesting", AgentHub = "AgentHub", ApiWorkflow = "ApiWorkflow" } /** * Enum for job source type */ declare enum JobSourceType { Manual = "Manual", Schedule = "Schedule", Agent = "Agent", Queue = "Queue", StudioWeb = "StudioWeb", IntegrationTrigger = "IntegrationTrigger", StudioDesktop = "StudioDesktop", AutomationOpsPipelines = "AutomationOpsPipelines", Apps = "Apps", SAP = "SAP", HttpTrigger = "HttpTrigger", HttpTriggerCallback = "HttpTriggerCallback", RobotAPI = "RobotAPI", CommandLine = "CommandLine", RobotNetAPI = "RobotNetAPI", Autopilot = "Autopilot", TestManager = "TestManager", AgentService = "AgentService", ProcessOrchestration = "ProcessOrchestration", PluginEcosystem = "PluginEcosystem", PerformanceTesting = "PerformanceTesting", AgentHub = "AgentHub", ApiWorkflow = "ApiWorkflow", CaseManagement = "CaseManagement" } /** * Enum for stop strategy */ declare enum StopStrategy { SoftStop = "SoftStop", Kill = "Kill" } /** * Enum for runtime type */ declare enum RuntimeType { NonProduction = "NonProduction", Attended = "Attended", Unattended = "Unattended", Development = "Development", Studio = "Studio", RpaDeveloper = "RpaDeveloper", StudioX = "StudioX", CitizenDeveloper = "CitizenDeveloper", Headless = "Headless", StudioPro = "StudioPro", RpaDeveloperPro = "RpaDeveloperPro", TestAutomation = "TestAutomation", AutomationCloud = "AutomationCloud", Serverless = "Serverless", AutomationKit = "AutomationKit", ServerlessTestAutomation = "ServerlessTestAutomation", AutomationCloudTestAutomation = "AutomationCloudTestAutomation", AttendedStudioWeb = "AttendedStudioWeb", Hosting = "Hosting", AssistantWeb = "AssistantWeb", ProcessOrchestration = "ProcessOrchestration", AgentService = "AgentService", AppTest = "AppTest", PerformanceTest = "PerformanceTest", BusinessRule = "BusinessRule", CaseManagement = "CaseManagement", Flow = "Flow" } /** * Interface for Job Attachment */ interface JobAttachment { attachmentId: string; jobKey?: string; category?: string; attachmentName?: string; } /** * Interface for common process properties shared across multiple interfaces */ interface ProcessProperties { jobPriority?: JobPriority | null; specificPriorityValue?: number | null; inputArguments?: string | null; environmentVariables?: string | null; entryPointPath?: string | null; remoteControlAccess?: RemoteControlAccess | null; requiresUserInteraction?: boolean | null; } /** * Interface for common folder properties */ interface FolderProperties { folderId: number; folderName: string | null; } /** * Base interface for process start request */ interface BaseProcessStartRequest extends ProcessProperties { strategy?: StartStrategy; robotIds?: number[]; machineSessionIds?: number[]; noOfRobots?: number; jobsCount?: number; source?: PackageSourceType; runtimeType?: RuntimeType; inputFile?: string; reference?: string; attachments?: JobAttachment[]; targetFramework?: TargetFramework; resumeOnSameContext?: boolean; batchExecutionKey?: string; stopProcessExpression?: string; stopStrategy?: StopStrategy; killProcessExpression?: string; alertPendingExpression?: string; alertRunningExpression?: string; runAsMe?: boolean; parentOperationId?: string; } /** * Interface for start process request with processKey */ interface ProcessStartRequestWithKey extends BaseProcessStartRequest { processKey: string; processName?: string; } /** * Interface for start process request with processName */ interface ProcessStartRequestWithName extends BaseProcessStartRequest { processKey?: string; processName: string; } /** * Interface for start process request * Either processKey or processName must be provided */ type ProcessStartRequest = ProcessStartRequestWithKey | ProcessStartRequestWithName; /** * Interface for robot metadata */ interface RobotMetadata { id: number; name?: string; username?: string; } /** * Interface for machine */ interface Machine { id: number; name?: string; } /** * Interface for job error */ interface JobError { code?: string; title?: string; detail?: string; category?: string; status?: number; timestamp?: string; } /** * Enum for job type */ declare enum JobType { Unattended = "Unattended", Attended = "Attended", ServerlessGeneric = "ServerlessGeneric" } /** * Interface for argument metadata */ interface ArgumentMetadata { input?: string; output?: string; } /** * Interface for job response */ interface ProcessStartResponse extends ProcessProperties, FolderProperties { key: string; startTime: string | null; endTime: string | null; state: JobState; source: string; sourceType: JobSourceType; batchExecutionKey: string; info: string | null; createdTime: string; startingScheduleId: number | null; processName: string; /** Key of the process this job was started from. */ processKey: string; type: JobType; inputFile: string | null; outputArguments: string | null; outputFile: string | null; hostMachineName: string | null; persistenceId: string | null; resumeVersion: number | null; stopStrategy: StopStrategy | null; runtimeType: RuntimeType; processVersionId: number | null; reference: string; packageType: PackageType; machine?: Machine; resumeOnSameContext: boolean; localSystemAccount: string; orchestratorUserIdentity: string | null; startingTriggerId: string | null; maxExpectedRunningTimeSeconds: number | null; parentJobKey: string | null; resumeTime: string | null; lastModifiedTime: string | null; jobError: JobError | null; errorCode: string | null; robot?: RobotMetadata; id: number; } /** * Interface for process response */ interface ProcessGetResponse extends ProcessProperties, FolderProperties { key: string; packageKey: string; packageVersion: string; isLatestVersion: boolean; isPackageDeleted: boolean; description: string; name: string; entryPointId: number; packageType: PackageType; supportsMultipleEntryPoints: boolean; isConversational: boolean | null; minRequiredRobotVersion: string | null; isCompiled: boolean; arguments: ArgumentMetadata; autoUpdate: boolean; hiddenForAttendedUser: boolean; feedId: string; folderKey: string; targetFramework: TargetFramework; robotSize: RobotSize | null; lastModifiedTime: string | null; lastModifierUserId: number | null; createdTime: string; creatorUserId: number; id: number; } /** * Options for getting processes across folders */ type ProcessGetAllOptions = RequestOptions & PaginationOptions & { /** * Optional folder ID to filter processes by folder */ folderId?: number; }; /** * Options for getting a single process by ID */ interface ProcessGetByIdOptions extends BaseOptions { } /** * Options for getting a single process by name */ interface ProcessGetByNameOptions extends FolderScopedOptions { } /** * Options for starting a process. Combines folder scoping * (`folderId` / `folderKey` / `folderPath`) with the OData query options * (`expand`, `select`, `filter`, `orderby`) accepted by the start endpoint. * * Folder scoping is optional in the type — the SDK falls back to the * init-time folderKey (e.g. `` in coded-app * deployments). A `ValidationError` is raised when neither is provided. */ interface ProcessStartOptions extends FolderScopedOptions, RequestOptions { } /** * Service for managing and executing UiPath Automation Processes. * * Processes (also known as automations or workflows) are the core units of automation in UiPath, representing sequences of activities that perform specific business tasks. [UiPath Processes Guide](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/about-processes) * * ### Usage * * Prerequisites: Initialize the SDK first - see [Getting Started](/uipath-typescript/getting-started/#import-initialize) * * ```typescript * import { Processes } from '@uipath/uipath-typescript/processes'; * * const processes = new Processes(sdk); * const allProcesses = await processes.getAll(); * ``` */ interface ProcessServiceModel { /** * Gets all processes across folders with optional filtering * Returns a NonPaginatedResponse with data and totalCount when no pagination parameters are provided, * or a PaginatedResponse when any pagination parameter is provided * * @param options - Query options including optional folderId and pagination options * @returns Promise resolving to either an array of processes NonPaginatedResponse or a PaginatedResponse when pagination options are used. * {@link ProcessGetResponse} * @example * ```typescript * // Standard array return * const allProcesses = await processes.getAll(); * * // Get processes within a specific folder * const folderProcesses = await processes.getAll({ * folderId: * }); * * // Get processes with filtering * const filteredProcesses = await processes.getAll({ * filter: "name eq 'MyProcess'" * }); * * // First page with pagination * const page1 = await processes.getAll({ pageSize: 10 }); * * // Navigate using cursor * if (page1.hasNextPage) { * const page2 = await processes.getAll({ cursor: page1.nextCursor }); * } * * // Jump to specific page * const page5 = await processes.getAll({ * jumpToPage: 5, * pageSize: 10 * }); * ``` */ getAll(options?: T): Promise ? PaginatedResponse : NonPaginatedResponse>; /** * Gets a single process by ID * * @param id - Process ID * @param folderId - Required folder ID * @param options - Optional query parameters * @returns Promise resolving to a single process * {@link ProcessGetResponse} * @example * ```typescript * // Get process by ID * const process = await processes.getById(, ); * ``` */ getById(id: number, folderId: number, options?: ProcessGetByIdOptions): Promise; /** * Retrieves a single process by name. * * @param name - Process name to search for * @param options - Folder scoping (`folderId` / `folderKey` / `folderPath`) and optional query parameters (`expand`, `select`) * @returns Promise resolving to a single process * {@link ProcessGetResponse} * @example * ```typescript * // By folder ID * await processes.getByName('MyProcess', { folderId: 123 }); * * // By folder key (GUID) * await processes.getByName('MyProcess', { folderKey: '5f6dadf1-3677-49dc-8aca-c2999dd4b3ba' }); * * // By folder path * await processes.getByName('MyProcess', { folderPath: 'Shared/Finance' }); * * // With expand * await processes.getByName('MyProcess', { folderPath: 'Shared/Finance', expand: 'entryPoints' }); * ``` */ getByName(name: string, options?: ProcessGetByNameOptions): Promise; /** * Starts a process with the specified configuration. * * Folder context can be supplied as `folderId`, `folderKey`, or `folderPath` * inside the options. * * @param request - Process start configuration * @param options - Folder scoping (`folderId` / `folderKey` / `folderPath`) and optional query parameters (`expand`, `select`, `filter`, `orderby`) * @returns Promise resolving to array of started process instances * {@link ProcessStartResponse} * @example * ```typescript * // By folder ID * await processes.start({ processKey: '' }, { folderId: }); * * // By folder key (GUID) * await processes.start({ processKey: '' }, { folderKey: '5f6dadf1-3677-49dc-8aca-c2999dd4b3ba' }); * * // By folder path * await processes.start({ processKey: '' }, { folderPath: 'Shared/Finance' }); * * // Start by process name (instead of processKey) * await processes.start({ processName: 'MyProcess' }, { folderId: }); * * // With additional options * await processes.start({ processKey: '' }, { folderId: , expand: 'Robot' }); * ``` */ start(request: ProcessStartRequest, options?: ProcessStartOptions): Promise; /** * Starts a process — positional `folderId` form. * * @deprecated Use the options-object form: `start(request, { folderId })`. See {@link ProcessStartOptions} for the supported options. * * @param request - Process start configuration * @param folderId - Required folder ID (numeric) * @param options - Optional request options * @returns Promise resolving to array of started process instances * {@link ProcessStartResponse} */ start(request: ProcessStartRequest, folderId: number, options?: RequestOptions): Promise; } /** * Service for interacting with UiPath Orchestrator Processes API */ declare class ProcessService extends FolderScopedService implements ProcessServiceModel { getAll(options?: T): Promise ? PaginatedResponse : NonPaginatedResponse>; start(request: ProcessStartRequest, options?: ProcessStartOptions): Promise; start(request: ProcessStartRequest, folderId: number, options?: RequestOptions): Promise; getById(id: number, folderId: number, options?: ProcessGetByIdOptions): Promise; getByName(name: string, options?: ProcessGetByNameOptions): Promise; } export { JobPriority, JobSourceType, JobType, PackageSourceType, PackageType, ProcessService, ProcessService as Processes, RemoteControlAccess, RobotSize, RuntimeType, StartStrategy, StopStrategy, TargetFramework }; export type { ArgumentMetadata, BaseProcessStartRequest, FolderProperties, JobAttachment, JobError, Machine, ProcessGetAllOptions, ProcessGetByIdOptions, ProcessGetByNameOptions, ProcessGetResponse, ProcessProperties, ProcessServiceModel, ProcessStartOptions, ProcessStartRequest, ProcessStartRequestWithKey, ProcessStartRequestWithName, ProcessStartResponse, RobotMetadata };