import { AdminApiClient } from '../admin';
import { Camunda8ClientConfiguration } from '../lib';
import { ModelerApiClient } from '../modeler';
import { OperateApiClient } from '../operate';
import { OptimizeApiClient } from '../optimize';
import { TasklistApiClient } from '../tasklist';
import { ZeebeGrpcClient, ZeebeRestClient } from '../zeebe';
import { Logger } from './lib/C8Logger';
import { CamundaRestClient } from './lib/CamundaRestClient';
/**
 * A single point of configuration for all Camunda Platform 8 clients.
 *
 * This class is a facade for all the clients in the Camunda Platform 8 SDK.
 *
 * @example
 * ```typescript
 * import { Camunda8 } from '@camunda8/sdk'
 *
 * const c8 = new Camunda8()
 * const zeebe = c8.getZeebeGrpcApiClient()
 * const operate = c8.getOperateApiClient()
 * const optimize = c8.getOptimizeApiClient()
 * const tasklist = c8.getTasklistApiClient()
 * const modeler = c8.getModelerApiClient()
 * const admin = c8.getAdminApiClient()
 * const c8Rest = c8.getCamundaRestClient()
 * ```
 */
export declare class Camunda8 {
    private operateApiClient?;
    private adminApiClient?;
    private modelerApiClient?;
    private optimizeApiClient?;
    private tasklistApiClient?;
    private zeebeGrpcApiClient?;
    private zeebeRestClient?;
    private configuration;
    private oAuthProvider;
    private camundaRestClient?;
    log: Logger;
    /**
     * All constructor parameters for configuration are optional. If no configuration is provided, the SDK will use environment variables to configure itself.
     */
    constructor(config?: Camunda8ClientConfiguration);
    getOperateApiClient(config?: Camunda8ClientConfiguration): OperateApiClient;
    getAdminApiClient(config?: Camunda8ClientConfiguration): AdminApiClient;
    getModelerApiClient(config?: Camunda8ClientConfiguration): ModelerApiClient;
    getOptimizeApiClient(config?: Camunda8ClientConfiguration): OptimizeApiClient;
    getTasklistApiClient(config?: Camunda8ClientConfiguration): TasklistApiClient;
    getZeebeGrpcApiClient(config?: Camunda8ClientConfiguration): ZeebeGrpcClient;
    /**
     * @deprecated from 8.6.0. Please use getCamundaRestClient() instead.
     */
    getZeebeRestClient(config?: Camunda8ClientConfiguration): ZeebeRestClient;
    getCamundaRestClient(config?: Camunda8ClientConfiguration): CamundaRestClient;
}
