import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { GatewayContract, GatewayListByServiceOptionalParams, GatewayGetEntityTagOptionalParams, GatewayGetEntityTagResponse, GatewayGetOptionalParams, GatewayGetResponse, GatewayCreateOrUpdateOptionalParams, GatewayCreateOrUpdateResponse, GatewayUpdateOptionalParams, GatewayUpdateResponse, GatewayDeleteOptionalParams, GatewayListKeysOptionalParams, GatewayListKeysResponse, GatewayKeyRegenerationRequestContract, GatewayRegenerateKeyOptionalParams, GatewayTokenRequestContract, GatewayGenerateTokenOptionalParams, GatewayGenerateTokenResponse, GatewayInvalidateDebugCredentialsOptionalParams, GatewayListDebugCredentialsContract, GatewayListDebugCredentialsOptionalParams, GatewayListDebugCredentialsResponse, GatewayListTraceContract, GatewayListTraceOptionalParams, GatewayListTraceResponse } from "../models/index.js";
/** Interface representing a Gateway. */
export interface Gateway {
    /**
     * Lists a collection of gateways registered with service instance.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param options The options parameters.
     */
    listByService(resourceGroupName: string, serviceName: string, options?: GatewayListByServiceOptionalParams): PagedAsyncIterableIterator<GatewayContract>;
    /**
     * Gets the entity state (Etag) version of the Gateway specified by its identifier.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param options The options parameters.
     */
    getEntityTag(resourceGroupName: string, serviceName: string, gatewayId: string, options?: GatewayGetEntityTagOptionalParams): Promise<GatewayGetEntityTagResponse>;
    /**
     * Gets the details of the Gateway specified by its identifier.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param options The options parameters.
     */
    get(resourceGroupName: string, serviceName: string, gatewayId: string, options?: GatewayGetOptionalParams): Promise<GatewayGetResponse>;
    /**
     * Creates or updates a Gateway to be used in Api Management instance.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param parameters Gateway details.
     * @param options The options parameters.
     */
    createOrUpdate(resourceGroupName: string, serviceName: string, gatewayId: string, parameters: GatewayContract, options?: GatewayCreateOrUpdateOptionalParams): Promise<GatewayCreateOrUpdateResponse>;
    /**
     * Updates the details of the gateway specified by its identifier.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header
     *                response of the GET request or it should be * for unconditional update.
     * @param parameters Gateway details.
     * @param options The options parameters.
     */
    update(resourceGroupName: string, serviceName: string, gatewayId: string, ifMatch: string, parameters: GatewayContract, options?: GatewayUpdateOptionalParams): Promise<GatewayUpdateResponse>;
    /**
     * Deletes specific Gateway.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header
     *                response of the GET request or it should be * for unconditional update.
     * @param options The options parameters.
     */
    delete(resourceGroupName: string, serviceName: string, gatewayId: string, ifMatch: string, options?: GatewayDeleteOptionalParams): Promise<void>;
    /**
     * Retrieves gateway keys.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param options The options parameters.
     */
    listKeys(resourceGroupName: string, serviceName: string, gatewayId: string, options?: GatewayListKeysOptionalParams): Promise<GatewayListKeysResponse>;
    /**
     * Regenerates specified gateway key invalidating any tokens created with it.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param parameters Gateway key regeneration request contract properties.
     * @param options The options parameters.
     */
    regenerateKey(resourceGroupName: string, serviceName: string, gatewayId: string, parameters: GatewayKeyRegenerationRequestContract, options?: GatewayRegenerateKeyOptionalParams): Promise<void>;
    /**
     * Gets the Shared Access Authorization Token for the gateway.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param parameters Gateway token request contract properties.
     * @param options The options parameters.
     */
    generateToken(resourceGroupName: string, serviceName: string, gatewayId: string, parameters: GatewayTokenRequestContract, options?: GatewayGenerateTokenOptionalParams): Promise<GatewayGenerateTokenResponse>;
    /**
     * Action is invalidating all debug credentials issued for gateway.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param options The options parameters.
     */
    invalidateDebugCredentials(resourceGroupName: string, serviceName: string, gatewayId: string, options?: GatewayInvalidateDebugCredentialsOptionalParams): Promise<void>;
    /**
     * Create new debug credentials for gateway.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param parameters List debug credentials properties.
     * @param options The options parameters.
     */
    listDebugCredentials(resourceGroupName: string, serviceName: string, gatewayId: string, parameters: GatewayListDebugCredentialsContract, options?: GatewayListDebugCredentialsOptionalParams): Promise<GatewayListDebugCredentialsResponse>;
    /**
     * Fetches trace collected by gateway.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param gatewayId Gateway entity identifier. Must be unique in the current API Management service
     *                  instance. Must not have value 'managed'
     * @param parameters List trace properties.
     * @param options The options parameters.
     */
    listTrace(resourceGroupName: string, serviceName: string, gatewayId: string, parameters: GatewayListTraceContract, options?: GatewayListTraceOptionalParams): Promise<GatewayListTraceResponse>;
}
//# sourceMappingURL=gateway.d.ts.map