/** * Azure DevOps HTTP Client * * Handles authentication, base URL construction, and API requests. * Extracted from AzureDevOpsService constructor + makeRequest(). */ import { type AxiosResponse } from 'axios'; import type { AzureDevOpsConfig } from './models/index.js'; import { type AdoAuthConfig } from './ado-auth-provider.js'; export declare class AzureDevOpsClient { private readonly _config; private readonly _baseUrl; private readonly _searchUrl; private readonly _extMgmtUrl; private readonly _authProvider; private readonly _apiVersion; constructor(config: AzureDevOpsConfig, authConfig: AdoAuthConfig); /** Read-only access to config */ get config(): AzureDevOpsConfig; /** Read-only access to organization name */ get organization(): string; /** Read-only access to API version */ get apiVersion(): string; /** Read-only access to base URL */ get baseUrl(): string; /** Read-only access to extension management URL */ get extMgmtUrl(): string; /** Authentication mode (pat or entra-id) */ get authMode(): string; /** * Validate that a project is in the allowed list */ validateProject(project: string): void; /** * Make an authenticated request to the Azure DevOps API */ request(endpoint: string, method?: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE', data?: any, useSearchUrl?: boolean, customHeaders?: Record): Promise; /** * Make a raw request returning the full AxiosResponse (for ETag/header access) */ requestRaw(endpoint: string, method?: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE', data?: any, customHeaders?: Record, responseType?: 'json' | 'arraybuffer'): Promise; /** * Make an authenticated request to the Azure DevOps Extension Management API. * Uses extmgmt.dev.azure.com instead of dev.azure.com. */ extRequest(endpoint: string, method?: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE', data?: any, customHeaders?: Record): Promise; get(endpoint: string, customHeaders?: Record): Promise; post(endpoint: string, data?: any, useSearchUrl?: boolean, customHeaders?: Record): Promise; patch(endpoint: string, data?: any, customHeaders?: Record): Promise; put(endpoint: string, data?: any, customHeaders?: Record): Promise; del(endpoint: string, customHeaders?: Record): Promise; } //# sourceMappingURL=azure-devops-client.d.ts.map