/**
 * @fileoverview Factory for creating DeepSource clients
 * This module provides a factory for creating client instances.
 */
import { DeepSourceClientConfig } from './base-client.js';
import { ProjectsClient } from './projects-client.js';
import { IssuesClient } from './issues-client.js';
import { RunsClient } from './runs-client.js';
import { MetricsClient } from './metrics-client.js';
import { SecurityClient } from './security-client.js';
/**
 * Factory for creating DeepSource client instances
 * @class
 * @public
 */
export declare class DeepSourceClientFactory {
    private apiKey;
    private config;
    private projectsClient?;
    private issuesClient?;
    private runsClient?;
    private metricsClient?;
    private securityClient?;
    /**
     * Creates a new DeepSourceClientFactory instance
     * @param apiKey The DeepSource API key
     * @param config Optional client configuration
     * @public
     */
    constructor(apiKey: string, config?: DeepSourceClientConfig);
    /**
     * Gets or creates a ProjectsClient instance
     * @returns A ProjectsClient instance
     * @public
     */
    getProjectsClient(): ProjectsClient;
    /**
     * Gets or creates an IssuesClient instance
     * @returns An IssuesClient instance
     * @public
     */
    getIssuesClient(): IssuesClient;
    /**
     * Gets or creates a RunsClient instance
     * @returns A RunsClient instance
     * @public
     */
    getRunsClient(): RunsClient;
    /**
     * Gets or creates a MetricsClient instance
     * @returns A MetricsClient instance
     * @public
     */
    getMetricsClient(): MetricsClient;
    /**
     * Gets or creates a SecurityClient instance
     * @returns A SecurityClient instance
     * @public
     */
    getSecurityClient(): SecurityClient;
    /**
     * Helper method to test connectivity to the DeepSource API
     * @returns True if connection was successful, false otherwise
     * @public
     */
    testConnection(): Promise<boolean>;
}
