/**
 * 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 { TokenCredential } from '@azure/core-auth';
import type { CommonClientOptions } from '@azure/core-client';
import { AuthenticationOperations, KmsOperations, PrincipalOperations, ProcessItemOperations, ProcessOperations, RobotOperations, TenantOperations, TenantUserOperations, WorkerOperations } from './operations';
export interface KuFlowRestClientAuthenticationOptions {
    /** Client ID. */
    clientId?: string;
    /** Client Secret. */
    clientSecret?: string;
    /** Token Credential. */
    credential?: TokenCredential;
}
export interface KuFlowRestClientOptionals extends CommonClientOptions {
    /** Overrides client endpoint. */
    endpoint?: string;
}
export declare class KuFlowRestClient {
    static readonly API_VERSION = "v2024-06-14";
    /**
     * Authentication API operations.
     */
    readonly authenticationOperations: AuthenticationOperations;
    /**
     * KMS API operations.
     */
    readonly kmsOperations: KmsOperations;
    /**
     * Principal API operations.
     */
    readonly principalOperations: PrincipalOperations;
    /**
     * Tenant API operations.
     */
    readonly tenantOperations: TenantOperations;
    /**
     * Tenant User API operations.
     */
    readonly tenantUserOperations: TenantUserOperations;
    /**
     * Process API operations.
     */
    readonly processOperations: ProcessOperations;
    /**
     * Process Item API operations.
     */
    readonly processItemOperations: ProcessItemOperations;
    /**
     * Worker API operations.
     */
    readonly workerOperations: WorkerOperations;
    /**
     * Robot API operations.
     */
    readonly robotOperations: RobotOperations;
    /**
     * Initializes a new instance of the KuFlowClient class.
     * @param authentication Credentials which uniquely identify the client.
     * @param options The parameter options
     */
    constructor(authentication: KuFlowRestClientAuthenticationOptions, options?: KuFlowRestClientOptionals);
    private normalizeOptions;
}
