import type { TokenCredential } from "@azure/core-auth";
import type { IsSubscribedOptionalParams, PublishOptionalParams, CollectionConfigurationInfo } from "../../../generated/index.js";
/**
 * Response type that includes the body and response headers from the Live Metrics service.
 * @internal
 */
export interface QuickpulseResponse extends CollectionConfigurationInfo {
    /** Whether the instrumentation key is subscribed. */
    xMsQpsSubscribed?: string;
    /** Configuration ETag. */
    xMsQpsConfigurationEtag?: string;
    /** Polling interval hint (only for ping). */
    xMsQpsServicePollingIntervalHint?: string;
    /** Endpoint redirect (only for ping). */
    xMsQpsServiceEndpointRedirectV2?: string;
}
/**
 * Quickpulse sender class
 * @internal
 */
export declare class QuickpulseSender {
    private quickpulseClient;
    private instrumentationKey;
    private endpointUrl;
    private credential;
    private credentialScopes;
    constructor(options: {
        endpointUrl: string;
        instrumentationKey: string;
        credential?: TokenCredential;
        credentialScopes?: string | string[];
    });
    private createQuickpulseClient;
    /**
     * isSubscribed Quickpulse service
     * @internal
     */
    isSubscribed(optionalParams: IsSubscribedOptionalParams): Promise<QuickpulseResponse | undefined>;
    /**
     * publish Quickpulse service
     * @internal
     */
    publish(optionalParams: PublishOptionalParams): Promise<QuickpulseResponse | undefined>;
    /**
     * Apply a server-issued Live Metrics redirect (`x-ms-qps-service-endpoint-redirect-v2`) by
     * re-pointing the underlying client at the new host.
     *
     * Cross-origin redirects are refused (no state mutated) when the target is neither the configured
     * Live Metrics host nor under a known Azure Monitor ingestion domain suffix. Refusing them is
     * required to prevent an attacker-controlled redirect from causing the bearer auth policy to
     * attach a freshly-signed AAD token (scope `https://monitor.azure.com/.default`) — and the
     * telemetry body — to a foreign host on the next ping/publish call.
     */
    handlePermanentRedirect(location: string | undefined): void;
}
//# sourceMappingURL=sender.d.ts.map