import { ConnectionString, ConnectionStringType } from "../../Etl/ConnectionString.js";
import { AiConnectorType } from "./AiConnectorType.js";
import { AiModelType } from "./AiModelType.js";
import { AiSettingsCompareDifferences } from "./AiSettingsCompareDifferences.js";
import { OpenAiSettings } from "./Settings/OpenAiSettings.js";
import { AzureOpenAiSettings } from "./Settings/AzureOpenAiSettings.js";
import { OllamaSettings } from "./Settings/OllamaSettings.js";
import { EmbeddedSettings } from "./Settings/EmbeddedSettings.js";
import { GoogleSettings } from "./Settings/GoogleSettings.js";
import { HuggingFaceSettings } from "./Settings/HuggingFaceSettings.js";
import { MistralAiSettings } from "./Settings/MistralAiSettings.js";
import { VertexSettings } from "./Settings/VertexSettings.js";
/**
 * Represents an AI service connection string configuration.
 * Supports multiple AI providers (OpenAI, Azure OpenAI, Ollama, Google, HuggingFace, Mistral AI, Vertex AI, Embedded).
 * Only one provider can be configured per connection string.
 */
export declare class AiConnectionString extends ConnectionString {
    identifier?: string;
    openAiSettings?: OpenAiSettings;
    azureOpenAiSettings?: AzureOpenAiSettings;
    ollamaSettings?: OllamaSettings;
    embeddedSettings?: EmbeddedSettings;
    googleSettings?: GoogleSettings;
    huggingFaceSettings?: HuggingFaceSettings;
    mistralAiSettings?: MistralAiSettings;
    vertexSettings?: VertexSettings;
    modelType?: AiModelType;
    type: ConnectionStringType;
    /**
     * Validates the connection string configuration.
     * Ensures exactly one AI provider is configured and all provider-specific fields are valid.
     * @returns Array of validation error messages (empty if valid)
     */
    validate(): string[];
    /**
     * Gets the type of the active AI provider.
     * @returns The connector type of the configured provider, or "None" if none configured
     */
    getActiveProvider(): AiConnectorType;
    /**
     * Gets the active provider settings instance.
     * @returns The configured provider settings, or undefined if none configured
     */
    getActiveProviderInstance(): OpenAiSettings | AzureOpenAiSettings | OllamaSettings | EmbeddedSettings | GoogleSettings | HuggingFaceSettings | MistralAiSettings | VertexSettings;
    /**
     * Compares this connection string with another to detect differences.
     * @param newConnectionString The connection string to compare with
     * @returns Flags indicating which settings differ
     */
    compare(newConnectionString: AiConnectionString | null | undefined): AiSettingsCompareDifferences;
    /**
     * Checks if this connection string is equal to another.
     * @param connectionString The connection string to compare with
     * @returns true if the connection strings are equal, false otherwise
     */
    isEqual(connectionString: ConnectionString): boolean;
    /**
     * Checks if the connection uses an encrypted communication channel (HTTPS).
     * @returns true if the connection is encrypted, false otherwise
     */
    usingEncryptedCommunicationChannel(): boolean;
    /**
     * Gets the maximum number of concurrent query embedding batches for this connection.
     * @param globalQueryEmbeddingsMaxConcurrentBatches The global default value
     * @returns The connection-specific value, or the global default if not set
     */
    getQueryEmbeddingsMaxConcurrentBatches(globalQueryEmbeddingsMaxConcurrentBatches: number): number;
}
//# sourceMappingURL=AiConnectionString.d.ts.map