/**
 * The MIT License
 * Copyright © 2021-present KuFlow S.L.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
import type * as coreClient from '@azure/core-client';
export type WebhookEventUnion = WebhookEventProcessCreated | WebhookEventProcessStateChanged | WebhookEventProcessItemCreated | WebhookEventProcessItemTaskStateChanged;
export interface AuthenticationCreateParams {
    type: AuthenticationType;
    /** Tenant id. This attribute is required when an OAuth2 authentication is used. */
    tenantId?: string;
}
export interface AuthenticationEngineToken {
    /** Engine authentication token */
    token: string;
    /** date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z */
    expiredAt: string;
}
export interface AuthenticationEngineCertificate {
    namespace: string;
    tls: AuthenticationEngineCertificateTls;
}
export interface AuthenticationEngineCertificateTls {
    serverRootCaCertificate: string;
    clientCertificate: string;
    clientPrivateKey: string;
}
export interface AbstractAudited {
    /** Who create this model. */
    createdBy?: string;
    /** When this model was created. - date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z */
    createdAt?: string;
    /** Who was last update this model. */
    lastModifiedBy?: string;
    /** When this model type was last updated. - date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z */
    lastModifiedAt?: string;
}
/** Default error */
export interface DefaultError {
    /** Timestamp indicating when the error happened. - date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z */
    timestamp: string;
    /** HTTP Status */
    status: number;
    /** Message Status */
    message: string;
    /** Related error information. */
    errors?: DefaultErrorInfo[];
}
export interface DefaultErrorInfo {
    code: string;
    message: string;
    location?: string;
    locationType?: string;
}
export interface KmsKey {
    /** Key Id */
    id: string;
    /** Encryption/decryption key */
    value: Uint8Array;
}
export interface PrincipalPageItem {
    id?: string;
    type?: PrincipalType;
    name?: string;
}
export interface Page {
    metadata: PageMetadata;
}
export interface PageMetadata {
    size: number;
    page: number;
    totalElements: number;
    totalPages: number;
}
export interface Principal {
    id?: string;
    type?: PrincipalType;
    name?: string;
    user?: PrincipalUser;
    application?: PrincipalApplication;
}
export interface PrincipalUser {
    id?: string;
    email?: string;
}
export interface PrincipalApplication {
    id?: string;
}
export interface TenantPageItem {
    id: string;
    name: string;
}
/** Json value. */
export interface JsonValue {
    /**
     * true if the data complain the related json schema.
     * NOTE: This property will not be serialized. It can only be populated by the server.
     */
    readonly valid?: boolean;
    /** json value filled that complain with the related json schema. */
    value: Record<string, any>;
    /** NOTE: This property will not be serialized. It can only be populated by the server. */
    readonly errors?: JsonValueError[];
}
/** Json value. */
export interface JsonValueError {
    /**
     * JSON pointer to the property with the error. See: https://datatracker.ietf.org/doc/html/rfc6901
     *
     * ie: /user/name or /users/1/name
     *
     */
    propertyPath?: string;
    /** Error type. */
    type?: string;
}
export interface ProcessDefinitionRef {
    id: string;
    version: string;
}
export interface ProcessCreateParams {
    id?: string;
    processDefinitionId: string;
    /** Json value. */
    metadata?: JsonValue;
    initiatorId?: string;
    initiatorEmail?: string;
}
export interface ProcessRelated {
    /** Processes whose relationship target is the current process. */
    incoming?: string[];
    /** Processes to which the current process relates. */
    outcoming?: string[];
}
/** Params to change the process initiator, only one option is required. */
export interface ProcessChangeInitiatorParams {
    initiatorId?: string;
    initiatorEmail?: string;
}
/** Params to save metadata data. */
export interface ProcessMetadataUpdateParams {
    /** Json value. */
    metadata: JsonValue;
}
export interface JsonPatchOperation {
    /** The operation to perform. */
    op: JsonPatchOperationType;
    /** A JSON Pointer path used when op is "copy" or "move". */
    from?: string;
    /** A JSON Pointer path. */
    path: string;
    /** The value to "add", "replace" or "test". */
    value?: any | null;
}
export interface ProcessEntityUpdateParams {
    /** Json value. */
    entity: JsonValue;
}
export interface DocumentReference {
    /**
     * JSON value representing the uploaded file.
     *
     * Example: `kuflow-file:uri=xxx-yyy-zzz;type=application/json;size=500;name=file.json;`
     *
     */
    documentUri: string;
}
export interface ProcessItemDefinitionRef {
    id: string;
    version: string;
    code: string;
}
export interface ProcessItemTaskPageItem {
    /** Process Item Task state */
    state: ProcessItemTaskState;
}
export interface ProcessItemMessagePageItem {
    /** Message text in Markdown format according to the specification https://spec.commonmark.org/ */
    text?: string;
    dataStructureDataDefinitionCode?: string;
}
export interface ProcessItemCreateParams {
    id?: string;
    /** Process Item Type */
    type: ProcessItemType;
    processId: string;
    ownerId?: string;
    ownerEmail?: string;
    processItemDefinitionCode?: string;
    task?: ProcessItemTaskCreateParams;
    message?: ProcessItemMessageCreateParams;
}
export interface ProcessItemTaskCreateParams {
    /** Json value. */
    data?: JsonValue;
}
export interface ProcessItemMessageCreateParams {
    /** Message text in Markdown format according to the specification https://spec.commonmark.org/ */
    text?: string;
    /** Json value. */
    data?: JsonValue;
    dataStructureDataDefinitionCode?: string;
}
export interface ProcessItemTask {
    /** Process Item Task state */
    state: ProcessItemTaskState;
    /** Json value. */
    data?: JsonValue;
    logs?: ProcessItemTaskLog[];
}
export interface ProcessItemTaskLog {
    id: string;
    /** When this model was created. - date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z */
    timestamp: string;
    message: string;
    level: ProcessItemTaskLogLevel;
}
export interface ProcessItemMessage {
    /** Message text in Markdown format according to the specification https://spec.commonmark.org/ */
    text?: string;
    /** Json value. */
    data?: JsonValue;
    dataStructureDataDefinitionCode?: string;
}
/** Params to assign a process item task, only one option is required. */
export interface ProcessItemTaskAssignParams {
    ownerId?: string;
    ownerEmail?: string;
}
export interface ProcessItemTaskAppendLogParams {
    message: string;
    level: ProcessItemTaskLogLevel;
}
export interface ProcessItemTaskDataUpdateParams {
    /** Json value. */
    data: JsonValue;
}
export interface WorkerCreateParams {
    identity: string;
    taskQueue: string;
    workflowTypes?: string[];
    activityTypes?: string[];
    hostname: string;
    ip: string;
    /** Installation Id. */
    installationId?: string;
    /** Robot Ids that this worker implements. */
    robotIds?: string[];
    /** Tenant ID. */
    tenantId?: string;
}
/** Robot source type */
export interface RobotSourceFile {
    /** Robot ID. */
    id: string;
    /** Source file name. */
    name: string;
    /** Source file content type. */
    contentType: string;
    /** Source file length. */
    contentLength: number;
    /** Source file to check the integrity. */
    contentHash: string;
}
export interface WebhookEvent {
    /** Polymorphic discriminator, which specifies the different types this object can be */
    type: 'PROCESS.CREATED' | 'PROCESS.STATE_CHANGED' | 'PROCESS_ITEM.CREATED' | 'PROCESS_ITEM.TASK_STATE_CHANGED';
    id: string;
    version: string;
    /** date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z */
    timestamp: string;
}
export interface WebhookEventProcessCreatedData {
    processId: string;
    /** Process state */
    processState: ProcessState;
}
export interface WebhookEventProcessStateChangedData {
    processId: string;
    /** Process state */
    processState: ProcessState;
}
export interface WebhookEventProcessItemCreatedData {
    processId: string;
    processItemId: string;
    /** Process Item Type */
    processItemType: ProcessItemType;
    /** Process Item Task state */
    processItemState?: ProcessItemTaskState;
    processItemDefinitionCode?: string;
}
export interface WebhookEventProcessItemTaskStateChangedData {
    processId: string;
    processItemId: string;
    /** Process Item Type */
    processItemType: ProcessItemType;
    /** Process Item Task state */
    processItemState: ProcessItemTaskState;
    processItemDefinitionCode: string;
}
export interface Authentication extends AbstractAudited {
    id?: string;
    type?: AuthenticationType;
    /** Tenant id. This attribute is required when an OAuth2 authentication is used. */
    tenantId?: string;
    engineToken?: AuthenticationEngineToken;
    engineCertificate?: AuthenticationEngineCertificate;
}
export interface Tenant extends AbstractAudited {
    id: string;
    name: string;
    /** Tenant pricing plan */
    plan: TenantPricingPlan;
}
export interface TenantUserPageItem extends AbstractAudited {
    /** NOTE: This property will not be serialized. It can only be populated by the server. */
    readonly id: string;
    /** NOTE: This property will not be serialized. It can only be populated by the server. */
    readonly principalId: string;
    /** NOTE: This property will not be serialized. It can only be populated by the server. */
    readonly tenantId: string;
}
export interface TenantUser extends AbstractAudited {
    id: string;
    /** Json value. */
    metadata?: JsonValue;
    principal: Principal;
    /** NOTE: This property will not be serialized. It can only be populated by the server. */
    readonly tenantId: string;
}
export interface ProcessPageItem extends AbstractAudited {
    /** Process ID. */
    id: string;
    /** Process state */
    state: ProcessState;
    processDefinitionRef: ProcessDefinitionRef;
    /** Principal ID. */
    initiatorId?: string;
    /** Tenant ID. */
    tenantId: string;
}
export interface Process extends AbstractAudited {
    /** Process ID. */
    id: string;
    /** Process state */
    state: ProcessState;
    processDefinitionRef?: ProcessDefinitionRef;
    /** Json value. */
    metadata?: JsonValue;
    /** Json value. */
    entity?: JsonValue;
    processRelated?: ProcessRelated;
    /** Process initiator id, Principal ID. */
    initiatorId?: string;
    /** Tenant ID. */
    tenantId: string;
}
export interface ProcessItemPageItem extends AbstractAudited {
    id: string;
    /** Process Item Type */
    type: ProcessItemType;
    processId: string;
    /** Principal ID. */
    ownerId?: string;
    /** Tenant ID. */
    tenantId: string;
    processItemDefinitionRef?: ProcessItemDefinitionRef;
    task?: ProcessItemTaskPageItem;
    message?: ProcessItemMessagePageItem;
}
export interface ProcessItem extends AbstractAudited {
    id: string;
    /** Process Item Type */
    type: ProcessItemType;
    processId: string;
    /** Owner Principal ID. */
    ownerId?: string;
    /** Tenant ID. */
    tenantId?: string;
    processItemDefinitionRef?: ProcessItemDefinitionRef;
    task?: ProcessItemTask;
    message?: ProcessItemMessage;
}
export interface Worker extends AbstractAudited {
    id?: string;
    identity: string;
    taskQueue: string;
    workflowTypes?: string[];
    activityTypes?: string[];
    hostname: string;
    ip: string;
    /** Installation Id. */
    installationId?: string;
    /** Robot Ids that this worker implements. */
    robotIds?: string[];
    /** Tenant ID. */
    tenantId?: string;
}
export interface RobotPageItem extends AbstractAudited {
    /** Robot ID. */
    id: string;
    /** Robot Code. */
    code: string;
    /** Robot name. */
    name: string;
    /** Robot description. */
    description?: string;
    /** Robot source type */
    sourceType: RobotSourceType;
    /** Robot source type */
    sourceFile: RobotSourceFile;
    /** Tenant ID. */
    tenantId: string;
}
export interface Robot extends AbstractAudited {
    /** Robot ID. */
    id: string;
    /** Robot Code. */
    code: string;
    /** Robot name. */
    name: string;
    /** Robot description. */
    description?: string;
    /** Robot source type */
    sourceType: RobotSourceType;
    /** Robot source type */
    sourceFile: RobotSourceFile;
    /** Environment variables to load when the robot is executed. */
    environmentVariables?: Record<string, string>;
    /** Tenant ID. */
    tenantId: string;
}
export interface PrincipalPage extends Page {
    content: PrincipalPageItem[];
}
export interface TenantPage extends Page {
    content: TenantPageItem[];
}
export interface TenantUserPage extends Page {
    content: TenantUserPageItem[];
}
export interface ProcessPage extends Page {
    content: ProcessPageItem[];
}
export interface ProcessItemPage extends Page {
    content: ProcessItemPageItem[];
}
export interface RobotPage extends Page {
    content: RobotPageItem[];
}
/** Process Events */
export interface WebhookEventProcessCreated extends WebhookEvent {
    /** Polymorphic discriminator, which specifies the different types this object can be */
    type: 'PROCESS.CREATED';
    data: WebhookEventProcessCreatedData;
}
/** Process Events */
export interface WebhookEventProcessStateChanged extends WebhookEvent {
    /** Polymorphic discriminator, which specifies the different types this object can be */
    type: 'PROCESS.STATE_CHANGED';
    data: WebhookEventProcessStateChangedData;
}
/** Process Events */
export interface WebhookEventProcessItemCreated extends WebhookEvent {
    /** Polymorphic discriminator, which specifies the different types this object can be */
    type: 'PROCESS_ITEM.CREATED';
    data: WebhookEventProcessItemCreatedData;
}
/** Process Events */
export interface WebhookEventProcessItemTaskStateChanged extends WebhookEvent {
    /** Polymorphic discriminator, which specifies the different types this object can be */
    type: 'PROCESS_ITEM.TASK_STATE_CHANGED';
    data: WebhookEventProcessItemTaskStateChangedData;
}
/** Defines values for AuthenticationType. */
export type AuthenticationType = 'ENGINE_TOKEN' | 'ENGINE_CERTIFICATE';
/** Defines values for PrincipalType. */
export type PrincipalType = 'USER' | 'APPLICATION' | 'SYSTEM';
/** Defines values for TenantPricingPlan. */
export type TenantPricingPlan = 'FREE' | 'PREMIUM' | 'UNLIMITED';
/** Defines values for ProcessState. */
export type ProcessState = 'RUNNING' | 'COMPLETED' | 'CANCELLED';
/** Defines values for JsonPatchOperationType. */
export type JsonPatchOperationType = 'add' | 'remove' | 'replace' | 'move' | 'copy' | 'test';
/** Defines values for ProcessItemType. */
export type ProcessItemType = 'TASK' | 'MESSAGE' | 'THREAD';
/** Defines values for ProcessItemTaskState. */
export type ProcessItemTaskState = 'READY' | 'CLAIMED' | 'COMPLETED' | 'CANCELLED';
/** Defines values for ProcessItemTaskLogLevel. */
export type ProcessItemTaskLogLevel = 'INFO' | 'WARN' | 'ERROR';
/** Defines values for RobotFilterContext. */
export type RobotFilterContext = 'READY' | 'DEFAULT';
/** Defines values for RobotSourceType. */
export type RobotSourceType = 'PACKAGE' | 'UNKNOWN';
/** Defines values for RobotAssetType. */
export type RobotAssetType = 'PYTHON' | 'PYTHON_PIP' | 'NODEJS';
/** Defines values for RobotAssetPlatform. */
export type RobotAssetPlatform = 'WINDOWS' | 'MAC_OS' | 'LINUX';
/** Defines values for RobotAssetArchitecture. */
export type RobotAssetArchitecture = 'X86_32' | 'X86_64';
/** Defines values for WebhookType. */
export type WebhookType = 'PROCESS.CREATED' | 'PROCESS.STATE_CHANGED' | 'PROCESS_ITEM.CREATED' | 'PROCESS_ITEM.TASK_STATE_CHANGED';
/** Optional parameters. */
export interface AuthenticationCreateAuthenticationOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the createAuthentication operation. */
export type AuthenticationCreateAuthenticationResponse = Authentication;
/** Optional parameters. */
export interface KmsRetrieveKmsKeyOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the retrieveKmsKey operation. */
export type KmsRetrieveKmsKeyResponse = KmsKey;
/** Optional parameters. */
export interface PrincipalFindPrincipalsOptionalParams extends coreClient.OperationOptions {
    /** The number of records returned within a single API call. */
    size?: number;
    /** The page number of the current page in the returned records, 0 is the first page. */
    page?: number;
    /**
     * Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc
     *
     * Default sort order is ascending. Multiple sort criteria are supported.
     *
     * Please refer to the method description for supported properties.
     *
     */
    sort?: string[];
    /** Filter principals by type. */
    type?: PrincipalType;
    /** Filter by group ids. */
    groupId?: string[];
    /** Filter by tenantId. */
    tenantId?: string[];
}
/** Contains response data for the findPrincipals operation. */
export type PrincipalFindPrincipalsResponse = PrincipalPage;
/** Optional parameters. */
export interface PrincipalRetrievePrincipalOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the retrievePrincipal operation. */
export type PrincipalRetrievePrincipalResponse = Principal;
/** Optional parameters. */
export interface TenantFindTenantsOptionalParams extends coreClient.OperationOptions {
    /** The number of records returned within a single API call. */
    size?: number;
    /** The page number of the current page in the returned records, 0 is the first page. */
    page?: number;
    /**
     * Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc
     *
     * Default sort order is ascending. Multiple sort criteria are supported.
     *
     * Please refer to the method description for supported properties.
     *
     */
    sort?: string[];
    /** Filter by tenantId. */
    tenantId?: string[];
}
/** Contains response data for the findTenants operation. */
export type TenantFindTenantsResponse = TenantPage;
/** Optional parameters. */
export interface TenantRetrieveTenantOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the retrieveTenant operation. */
export type TenantRetrieveTenantResponse = Tenant;
/** Optional parameters. */
export interface TenantUserFindTenantUsersOptionalParams extends coreClient.OperationOptions {
    /** The number of records returned within a single API call. */
    size?: number;
    /** The page number of the current page in the returned records, 0 is the first page. */
    page?: number;
    /**
     * Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc
     *
     * Default sort order is ascending. Multiple sort criteria are supported.
     *
     * Please refer to the method description for supported properties.
     *
     */
    sort?: string[];
    /** Filter by group ids. */
    groupId?: string[];
    /** Filter by tenantId. */
    tenantId?: string[];
    /** Filter by email. */
    email?: string[];
}
/** Contains response data for the findTenantUsers operation. */
export type TenantUserFindTenantUsersResponse = TenantUserPage;
/** Optional parameters. */
export interface TenantUserRetrieveTenantUserOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the retrieveTenantUser operation. */
export type TenantUserRetrieveTenantUserResponse = TenantUser;
/** Optional parameters. */
export interface ProcessFindProcessesOptionalParams extends coreClient.OperationOptions {
    /** The number of records returned within a single API call. */
    size?: number;
    /** The page number of the current page in the returned records, 0 is the first page. */
    page?: number;
    /**
     * Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc
     *
     * Default sort order is ascending. Multiple sort criteria are supported.
     *
     * Please refer to the method description for supported properties.
     *
     */
    sort?: string[];
    /** Filter by tenantId. */
    tenantId?: string[];
}
/** Contains response data for the findProcesses operation. */
export type ProcessFindProcessesResponse = ProcessPage;
/** Optional parameters. */
export interface ProcessCreateProcessOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the createProcess operation. */
export type ProcessCreateProcessResponse = Process;
/** Optional parameters. */
export interface ProcessRetrieveProcessOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the retrieveProcess operation. */
export type ProcessRetrieveProcessResponse = Process;
/** Optional parameters. */
export interface ProcessCompleteProcessOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the completeProcess operation. */
export type ProcessCompleteProcessResponse = Process;
/** Optional parameters. */
export interface ProcessCancelProcessOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the cancelProcess operation. */
export type ProcessCancelProcessResponse = Process;
/** Optional parameters. */
export interface ProcessChangeProcessInitiatorOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the changeProcessInitiator operation. */
export type ProcessChangeProcessInitiatorResponse = Process;
/** Optional parameters. */
export interface ProcessUploadProcessUserActionDocumentOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the uploadProcessUserActionDocument operation. */
export type ProcessUploadProcessUserActionDocumentResponse = Process;
/** Optional parameters. */
export interface ProcessUpdateProcessMetadataOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the updateProcessMetadata operation. */
export type ProcessUpdateProcessMetadataResponse = Process;
/** Optional parameters. */
export interface ProcessPatchProcessMetadataOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the patchProcessMetadata operation. */
export type ProcessPatchProcessMetadataResponse = Process;
/** Optional parameters. */
export interface ProcessUpdateProcessEntityOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the updateProcessEntity operation. */
export type ProcessUpdateProcessEntityResponse = Process;
/** Optional parameters. */
export interface ProcessPatchProcessEntityOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the patchProcessEntity operation. */
export type ProcessPatchProcessEntityResponse = Process;
/** Optional parameters. */
export interface ProcessUploadProcessDocumentOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the uploadProcessDocument operation. */
export type ProcessUploadProcessDocumentResponse = DocumentReference;
/** Optional parameters. */
export interface ProcessDownloadProcessDocumentOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the downloadProcessDocument operation. */
export interface ProcessDownloadProcessDocumentResponse {
    /**
     * BROWSER ONLY
     *
     * The response body as a browser Blob.
     * Always `undefined` in node.js.
     */
    blobBody?: Promise<Blob>;
    /**
     * NODEJS ONLY
     *
     * The response body as a node.js Readable stream.
     * Always `undefined` in the browser.
     */
    readableStreamBody?: NodeJS.ReadableStream;
}
/** Optional parameters. */
export interface ProcessItemFindProcessItemsOptionalParams extends coreClient.OperationOptions {
    /** The number of records returned within a single API call. */
    size?: number;
    /** The page number of the current page in the returned records, 0 is the first page. */
    page?: number;
    /**
     * Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc
     *
     * Default sort order is ascending. Multiple sort criteria are supported.
     *
     * Please refer to the method description for supported properties.
     *
     */
    sort?: string[];
    /** Filter by tenantId. */
    tenantId?: string[];
    /** Filter by an array of process ids. */
    processId?: string[];
    /** Filter by an array of type. */
    type?: ProcessItemType[];
    /** Filter by an array of task states. */
    taskState?: ProcessItemTaskState[];
    /** Filter by an array of task definition codes. */
    processItemDefinitionCode?: string[];
}
/** Contains response data for the findProcessItems operation. */
export type ProcessItemFindProcessItemsResponse = ProcessItemPage;
/** Optional parameters. */
export interface ProcessItemCreateProcessItemOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the createProcessItem operation. */
export type ProcessItemCreateProcessItemResponse = ProcessItem;
/** Optional parameters. */
export interface ProcessItemRetrieveProcessItemOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the retrieveProcessItem operation. */
export type ProcessItemRetrieveProcessItemResponse = ProcessItem;
/** Optional parameters. */
export interface ProcessItemClaimProcessItemTaskOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the claimProcessItemTask operation. */
export type ProcessItemClaimProcessItemTaskResponse = ProcessItem;
/** Optional parameters. */
export interface ProcessItemAssignProcessItemTaskOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the assignProcessItemTask operation. */
export type ProcessItemAssignProcessItemTaskResponse = ProcessItem;
/** Optional parameters. */
export interface ProcessItemCompleteProcessItemTaskOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the completeProcessItemTask operation. */
export type ProcessItemCompleteProcessItemTaskResponse = ProcessItem;
/** Optional parameters. */
export interface ProcessItemAppendProcessItemTaskLogOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the appendProcessItemTaskLog operation. */
export type ProcessItemAppendProcessItemTaskLogResponse = ProcessItem;
/** Optional parameters. */
export interface ProcessItemUpdateProcessItemTaskDataOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the updateProcessItemTaskData operation. */
export type ProcessItemUpdateProcessItemTaskDataResponse = ProcessItem;
/** Optional parameters. */
export interface ProcessItemPatchProcessItemTaskDataOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the patchProcessItemTaskData operation. */
export type ProcessItemPatchProcessItemTaskDataResponse = ProcessItem;
/** Optional parameters. */
export interface ProcessItemDownloadProcessItemTaskDataWebformsAsDocumentOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the downloadProcessItemTaskDataWebformsAsDocument operation. */
export interface ProcessItemDownloadProcessItemTaskDataWebformsAsDocumentResponse {
    /**
     * BROWSER ONLY
     *
     * The response body as a browser Blob.
     * Always `undefined` in node.js.
     */
    blobBody?: Promise<Blob>;
    /**
     * NODEJS ONLY
     *
     * The response body as a node.js Readable stream.
     * Always `undefined` in the browser.
     */
    readableStreamBody?: NodeJS.ReadableStream;
}
/** Optional parameters. */
export interface WorkerCreateWorkerOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the createWorker operation. */
export type WorkerCreateWorkerResponse = Worker;
/** Optional parameters. */
export interface RobotFindRobotsOptionalParams extends coreClient.OperationOptions {
    /** The number of records returned within a single API call. */
    size?: number;
    /** The page number of the current page in the returned records, 0 is the first page. */
    page?: number;
    /**
     * Sorting criteria in the format: property{,asc|desc}. Example: createdAt,desc
     *
     * Default sort order is ascending. Multiple sort criteria are supported.
     *
     * Please refer to the method description for supported properties.
     *
     */
    sort?: string[];
    /** Filter by tenantId. */
    tenantId?: string[];
    /** Filter by the specified context. */
    filterContext?: RobotFilterContext;
}
/** Contains response data for the findRobots operation. */
export type RobotFindRobotsResponse = RobotPage;
/** Optional parameters. */
export interface RobotRetrieveRobotOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the retrieveRobot operation. */
export type RobotRetrieveRobotResponse = Robot;
/** Optional parameters. */
export interface RobotDownloadRobotSourceCodeOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the downloadRobotSourceCode operation. */
export interface RobotDownloadRobotSourceCodeResponse {
    /**
     * BROWSER ONLY
     *
     * The response body as a browser Blob.
     * Always `undefined` in node.js.
     */
    blobBody?: Promise<Blob>;
    /**
     * NODEJS ONLY
     *
     * The response body as a node.js Readable stream.
     * Always `undefined` in the browser.
     */
    readableStreamBody?: NodeJS.ReadableStream;
}
/** Optional parameters. */
export interface RobotDownloadRobotAssetOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the downloadRobotAsset operation. */
export interface RobotDownloadRobotAssetResponse {
    /**
     * BROWSER ONLY
     *
     * The response body as a browser Blob.
     * Always `undefined` in node.js.
     */
    blobBody?: Promise<Blob>;
    /**
     * NODEJS ONLY
     *
     * The response body as a node.js Readable stream.
     * Always `undefined` in the browser.
     */
    readableStreamBody?: NodeJS.ReadableStream;
}
/** Optional parameters. */
export interface KuFlowRestClientGeneratedOptionalParams extends coreClient.ServiceClientOptions {
    /** server parameter */
    $host?: string;
    /** Overrides client endpoint. */
    endpoint?: string;
}
