import { SimplePollerLike, OperationState } from "@azure/core-lro";
import { DeployConfigurationParameters, ConfigurationIdName, TenantConfigurationDeployOptionalParams, TenantConfigurationDeployResponse, SaveConfigurationParameter, TenantConfigurationSaveOptionalParams, TenantConfigurationSaveResponse, TenantConfigurationValidateOptionalParams, TenantConfigurationValidateResponse, TenantConfigurationGetSyncStateOptionalParams, TenantConfigurationGetSyncStateResponse } from "../models/index.js";
/** Interface representing a TenantConfiguration. */
export interface TenantConfiguration {
    /**
     * This operation applies changes from the specified Git branch to the configuration database. This is
     * a long running operation and could take several minutes to complete.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param configurationName The identifier of the Git Configuration Operation.
     * @param parameters Deploy Configuration parameters.
     * @param options The options parameters.
     */
    beginDeploy(resourceGroupName: string, serviceName: string, configurationName: ConfigurationIdName, parameters: DeployConfigurationParameters, options?: TenantConfigurationDeployOptionalParams): Promise<SimplePollerLike<OperationState<TenantConfigurationDeployResponse>, TenantConfigurationDeployResponse>>;
    /**
     * This operation applies changes from the specified Git branch to the configuration database. This is
     * a long running operation and could take several minutes to complete.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param configurationName The identifier of the Git Configuration Operation.
     * @param parameters Deploy Configuration parameters.
     * @param options The options parameters.
     */
    beginDeployAndWait(resourceGroupName: string, serviceName: string, configurationName: ConfigurationIdName, parameters: DeployConfigurationParameters, options?: TenantConfigurationDeployOptionalParams): Promise<TenantConfigurationDeployResponse>;
    /**
     * This operation creates a commit with the current configuration snapshot to the specified branch in
     * the repository. This is a long running operation and could take several minutes to complete.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param configurationName The identifier of the Git Configuration Operation.
     * @param parameters Save Configuration parameters.
     * @param options The options parameters.
     */
    beginSave(resourceGroupName: string, serviceName: string, configurationName: ConfigurationIdName, parameters: SaveConfigurationParameter, options?: TenantConfigurationSaveOptionalParams): Promise<SimplePollerLike<OperationState<TenantConfigurationSaveResponse>, TenantConfigurationSaveResponse>>;
    /**
     * This operation creates a commit with the current configuration snapshot to the specified branch in
     * the repository. This is a long running operation and could take several minutes to complete.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param configurationName The identifier of the Git Configuration Operation.
     * @param parameters Save Configuration parameters.
     * @param options The options parameters.
     */
    beginSaveAndWait(resourceGroupName: string, serviceName: string, configurationName: ConfigurationIdName, parameters: SaveConfigurationParameter, options?: TenantConfigurationSaveOptionalParams): Promise<TenantConfigurationSaveResponse>;
    /**
     * This operation validates the changes in the specified Git branch. This is a long running operation
     * and could take several minutes to complete.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param configurationName The identifier of the Git Configuration Operation.
     * @param parameters Validate Configuration parameters.
     * @param options The options parameters.
     */
    beginValidate(resourceGroupName: string, serviceName: string, configurationName: ConfigurationIdName, parameters: DeployConfigurationParameters, options?: TenantConfigurationValidateOptionalParams): Promise<SimplePollerLike<OperationState<TenantConfigurationValidateResponse>, TenantConfigurationValidateResponse>>;
    /**
     * This operation validates the changes in the specified Git branch. This is a long running operation
     * and could take several minutes to complete.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param configurationName The identifier of the Git Configuration Operation.
     * @param parameters Validate Configuration parameters.
     * @param options The options parameters.
     */
    beginValidateAndWait(resourceGroupName: string, serviceName: string, configurationName: ConfigurationIdName, parameters: DeployConfigurationParameters, options?: TenantConfigurationValidateOptionalParams): Promise<TenantConfigurationValidateResponse>;
    /**
     * Gets the status of the most recent synchronization between the configuration database and the Git
     * repository.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serviceName The name of the API Management service.
     * @param configurationName The identifier of the Git Configuration Operation.
     * @param options The options parameters.
     */
    getSyncState(resourceGroupName: string, serviceName: string, configurationName: ConfigurationIdName, options?: TenantConfigurationGetSyncStateOptionalParams): Promise<TenantConfigurationGetSyncStateResponse>;
}
//# sourceMappingURL=tenantConfiguration.d.ts.map