import type { CancellationToken } from 'vscode';
import { IAuthenticationService } from '../../../platform/authentication/common/authentication';
import { IChatMLFetcher } from '../../../platform/chat/common/chatMLFetcher';
import { ChatResponse } from '../../../platform/chat/common/commonTypes';
import { IConfigurationService } from '../../../platform/configuration/common/configurationService';
import { ICAPIClientService } from '../../../platform/endpoint/common/capiClient';
import { IDomainService } from '../../../platform/endpoint/common/domainService';
import { IChatModelInformation } from '../../../platform/endpoint/common/endpointProvider';
import { ChatEndpoint } from '../../../platform/endpoint/node/chatEndpoint';
import { ILogService } from '../../../platform/log/common/logService';
import { IFetcherService } from '../../../platform/networking/common/fetcherService';
import { IChatEndpoint, ICreateEndpointBodyOptions, IEndpointBody, IMakeChatRequestOptions } from '../../../platform/networking/common/networking';
import { IExperimentationService } from '../../../platform/telemetry/common/nullExperimentationService';
import { ITelemetryService } from '../../../platform/telemetry/common/telemetry';
import { ITokenizerProvider } from '../../../platform/tokenizer/node/tokenizer';
import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';
export declare class OpenAIEndpoint extends ChatEndpoint {
    protected readonly modelMetadata: IChatModelInformation;
    protected readonly _apiKey: string;
    protected readonly _modelUrl: string;
    protected instantiationService: IInstantiationService;
    protected logService: ILogService;
    private static readonly _reservedHeaders;
    private static readonly _validHeaderNamePattern;
    private static readonly _maxHeaderNameLength;
    private static readonly _maxHeaderValueLength;
    private static readonly _maxCustomHeaderCount;
    private readonly _customHeaders;
    constructor(modelMetadata: IChatModelInformation, _apiKey: string, _modelUrl: string, fetcherService: IFetcherService, domainService: IDomainService, capiClientService: ICAPIClientService, telemetryService: ITelemetryService, authService: IAuthenticationService, chatMLFetcher: IChatMLFetcher, tokenizerProvider: ITokenizerProvider, instantiationService: IInstantiationService, configurationService: IConfigurationService, expService: IExperimentationService, logService: ILogService);
    private _sanitizeCustomHeaders;
    private _sanitizeHeaderValue;
    createRequestBody(options: ICreateEndpointBodyOptions): IEndpointBody;
    interceptBody(body: IEndpointBody | undefined): void;
    get urlOrRequestMetadata(): string;
    getExtraHeaders(): Record<string, string>;
    acceptChatPolicy(): Promise<boolean>;
    cloneWithTokenOverride(modelMaxPromptTokens: number): IChatEndpoint;
    makeChatRequest2(options: IMakeChatRequestOptions, token: CancellationToken): Promise<ChatResponse>;
}
//# sourceMappingURL=openAIEndpoint.d.ts.map