/**
 * AzureOpenAIAdapter -- Azure OpenAI Service transport adapter.
 *
 * Implements LlmProviderAdapter for the Azure OpenAI REST wire format.
 * Does NOT extend or reuse OpenAIAdapter. The Azure wire format differs
 * on: URL structure, auth model, api-version query parameter, and
 * content_filter_results in the response.
 *
 * Wire format:
 *   POST https://<resource>.openai.azure.com/openai/deployments/<deployment>/
 *        chat/completions?api-version=<version>
 *
 * Auth options:
 *   - api-key header (API key auth)
 *   - Authorization: Bearer <token> (Azure AD OAuth)
 *
 * Spec: P3-SUB-01 AC 12-15 (AzureOpenAIAdapter)
 *
 * @connexum/ai-governance
 */
import { BaseProviderAdapter } from './base';
import type { LlmAdapterConfig, LlmAdapterCapabilities, LlmChatRequest, LlmChatResponse, LlmStreamChunk, LlmToolUseRequest, LlmToolUseResponse, LlmModelDescriptor } from './index';
import { LlmProviderError } from './index';
/** Azure OpenAI API version this adapter was tested against */
export declare const TESTED_API_VERSION = "2024-10-21";
export interface AzureOpenAIAdapterConfig extends LlmAdapterConfig {
    /** Azure resource name (required) -- e.g. my-resource */
    resourceName: string;
    /** Deployment name (required) -- different from the underlying model name */
    deploymentName: string;
    /**
     * Auth type:
     *   - 'api-key' (default): uses `api-key` header with apiKey value
     *   - 'azure-ad': uses `Authorization: Bearer <apiKey>` header
     */
    authType?: 'api-key' | 'azure-ad';
    /** API version override (default: TESTED_API_VERSION) */
    apiVersion?: string;
}
export declare class AzureOpenAIAdapter extends BaseProviderAdapter {
    readonly adapterId = "azure-openai";
    readonly providerId = "microsoft";
    private azureConfig;
    initialize(config: LlmAdapterConfig): void;
    private buildUrl;
    private buildAuthHeaders;
    chat(request: LlmChatRequest): Promise<LlmChatResponse>;
    private chatOnce;
    chatStream(request: LlmChatRequest): AsyncIterable<LlmStreamChunk>;
    invokeToolUse(request: LlmToolUseRequest): Promise<LlmToolUseResponse>;
    private invokeToolUseOnce;
    enumerateModels(): Promise<LlmModelDescriptor[]>;
    translateError(raw: unknown): LlmProviderError;
    getCapabilities(): LlmAdapterCapabilities;
    /**
     * Handle non-2xx HTTP responses.
     * Translates to typed error subclasses.
     * retryAfterHeader is extracted from the response when available.
     */
    private handleHttpErrors;
    /**
     * Process Azure content_filter_results from a choice.
     * Emits audit event and throws LlmContentFilterError when filtered: true.
     * Spec AC 13: emit audit event regardless of return path.
     */
    private processContentFilterResults;
    private mapFinishReason;
}
//# sourceMappingURL=azure-openai.d.ts.map