/**
 * -------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation.  All Rights Reserved.  Licensed under the MIT License.
 * See License in the project root for license information.
 * -------------------------------------------------------------------------------------------
 */
import { type RequestInformation } from "../requestInformation.js";
import type { AuthenticationProvider } from "./authenticationProvider.js";
/** Authenticate a request by using an API Key */
export declare class ApiKeyAuthenticationProvider implements AuthenticationProvider {
    private readonly apiKey;
    private readonly parameterName;
    private readonly location;
    private readonly validator;
    /**
     * @param apiKey The API Key to use for authentication
     * @param parameterName The name of the parameter to use for authentication
     * @param location The location of the parameter to use for authentication
     * @param validHosts The hosts that are allowed to use this authentication provider
     */
    constructor(apiKey: string, parameterName: string, location: ApiKeyLocation, validHosts?: Set<string>);
    authenticateRequest(request: RequestInformation, additionalAuthenticationContext?: Record<string, unknown>): Promise<void>;
}
/** The location for the API key */
export declare enum ApiKeyLocation {
    /** The API key is in the query parameters */
    QueryParameter = 0,
    /** The API key is in the headers */
    Header = 1
}
//# sourceMappingURL=apiKeyAuthenticationProvider.d.ts.map