/*!
 * Copyright (C) Microsoft Corporation. All rights reserved.
 */
import type { HttpRequestConfig } from '../http/HttpTypes.js';
/**
 * Header value: a static string or a function called per-request to produce a value.
 *
 * Use a function for values that must be unique per request (e.g. `() => crypto.randomUUID()`
 * for correlation IDs). The resolved values are sent with the request and logged in telemetry.
 */
export type HeaderValue = string | (() => string);
/** Describes a service endpoint for creating pre-authenticated HTTP clients. */
export interface ServiceEndpoint {
    /** Base URL prepended to all requests (e.g. 'https://api.powerapps.com'). */
    baseUrl: string;
    /** Token resource identifier (e.g. 'https://service.powerapps.com'). */
    resource: string;
    /**
     * Headers included in every request to this endpoint. Values can be static strings or
     * functions called per-request (e.g. `() => crypto.randomUUID()` for correlation IDs).
     * Resolved values are logged as telemetry properties alongside the request event.
     * Per-request headers from `HttpRequestConfig.headers` take precedence over these.
     */
    headers?: Record<string, HeaderValue>;
    /** Derive telemetry properties from the request config (e.g. parse apiId from URL). */
    extractTelemetryProperties?: (config: HttpRequestConfig) => Record<string, unknown>;
}
//# sourceMappingURL=ServiceEndpoint.d.ts.map