import { AzureAuthProvider, type AzureAuthConfig } from '../auth/AzureAuthProvider.js'; /** * Configuration for the ARM client. */ export interface ArmClientConfig extends AzureAuthConfig { subscriptionId: string; resourceGroup?: string; maxRetries?: number; retryDelayMs?: number; } /** * HTTP client for Azure Resource Manager API. * Handles authentication, pagination, retries, and error handling. */ export declare class ArmClient { private client; private authProvider; private subscriptionId; private defaultResourceGroup?; private maxRetries; private retryDelayMs; private static readonly BASE_URL; private static readonly RETRY_STATUS_CODES; constructor(config: ArmClientConfig); /** * Get the subscription ID. */ getSubscriptionId(): string; /** * Get the default resource group. */ getDefaultResourceGroup(): string | undefined; /** * Make an authenticated GET request to the ARM API. */ get(path: string, apiVersion?: string, params?: Record): Promise; /** * Make an authenticated POST request to the ARM API. */ post(path: string, body: unknown, apiVersion?: string, params?: Record): Promise; /** * Make an authenticated PUT request to the ARM API. */ put(path: string, body: unknown, apiVersion?: string, params?: Record): Promise; /** * Make an authenticated PATCH request to the ARM API. */ patch(path: string, body: unknown, apiVersion?: string, params?: Record): Promise; /** * Paginate through all results from a list endpoint. */ paginate(path: string, apiVersion?: string, params?: Record, maxResults?: number): Promise; /** * Build URL for subscription-level resource. */ subscriptionPath(path?: string): string; /** * Build URL for resource group-level resource. */ resourceGroupPath(resourceGroup?: string, path?: string): string; /** * Build URL for a specific resource by full resource ID. */ resourcePath(resourceId: string): string; /** * Get the Azure Auth Provider for data plane operations. */ getAuthProvider(): AzureAuthProvider; /** * Build the full URL with API version and query params. */ private buildUrl; /** * Try to extract resource type from path to get the right API version. */ private extractApiVersionFromPath; /** * Execute a request with retry logic. */ private executeWithRetry; /** * Handle and transform errors. */ private handleError; /** * Delay helper for retries. */ private delay; } //# sourceMappingURL=ArmClient.d.ts.map