import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { Servers } from "../operationsInterfaces";
import { MySQLManagementFlexibleServerClient } from "../mySQLManagementFlexibleServerClient";
import { PollerLike, PollOperationState } from "@azure/core-lro";
import { Server, ServersListByResourceGroupOptionalParams, ServersListOptionalParams, ServersCreateOptionalParams, ServersCreateResponse, ServerForUpdate, ServersUpdateOptionalParams, ServersUpdateResponse, ServersDeleteOptionalParams, ServersGetOptionalParams, ServersGetResponse, ServersFailoverOptionalParams, ServerRestartParameter, ServersRestartOptionalParams, ServersStartOptionalParams, ServersStopOptionalParams } from "../models";
/** Class containing Servers operations. */
export declare class ServersImpl implements Servers {
    private readonly client;
    /**
     * Initialize a new instance of the class Servers class.
     * @param client Reference to the service client
     */
    constructor(client: MySQLManagementFlexibleServerClient);
    /**
     * List all the servers in a given resource group.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param options The options parameters.
     */
    listByResourceGroup(resourceGroupName: string, options?: ServersListByResourceGroupOptionalParams): PagedAsyncIterableIterator<Server>;
    private listByResourceGroupPagingPage;
    private listByResourceGroupPagingAll;
    /**
     * List all the servers in a given subscription.
     * @param options The options parameters.
     */
    list(options?: ServersListOptionalParams): PagedAsyncIterableIterator<Server>;
    private listPagingPage;
    private listPagingAll;
    /**
     * Creates a new server or updates an existing server. The update action will overwrite the existing
     * server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param parameters The required parameters for creating or updating a server.
     * @param options The options parameters.
     */
    beginCreate(resourceGroupName: string, serverName: string, parameters: Server, options?: ServersCreateOptionalParams): Promise<PollerLike<PollOperationState<ServersCreateResponse>, ServersCreateResponse>>;
    /**
     * Creates a new server or updates an existing server. The update action will overwrite the existing
     * server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param parameters The required parameters for creating or updating a server.
     * @param options The options parameters.
     */
    beginCreateAndWait(resourceGroupName: string, serverName: string, parameters: Server, options?: ServersCreateOptionalParams): Promise<ServersCreateResponse>;
    /**
     * Updates an existing server. The request body can contain one to many of the properties present in
     * the normal server definition.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param parameters The required parameters for updating a server.
     * @param options The options parameters.
     */
    beginUpdate(resourceGroupName: string, serverName: string, parameters: ServerForUpdate, options?: ServersUpdateOptionalParams): Promise<PollerLike<PollOperationState<ServersUpdateResponse>, ServersUpdateResponse>>;
    /**
     * Updates an existing server. The request body can contain one to many of the properties present in
     * the normal server definition.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param parameters The required parameters for updating a server.
     * @param options The options parameters.
     */
    beginUpdateAndWait(resourceGroupName: string, serverName: string, parameters: ServerForUpdate, options?: ServersUpdateOptionalParams): Promise<ServersUpdateResponse>;
    /**
     * Deletes a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param options The options parameters.
     */
    beginDelete(resourceGroupName: string, serverName: string, options?: ServersDeleteOptionalParams): Promise<PollerLike<PollOperationState<void>, void>>;
    /**
     * Deletes a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param options The options parameters.
     */
    beginDeleteAndWait(resourceGroupName: string, serverName: string, options?: ServersDeleteOptionalParams): Promise<void>;
    /**
     * Gets information about a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, serverName: string, options?: ServersGetOptionalParams): Promise<ServersGetResponse>;
    /**
     * List all the servers in a given resource group.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param options The options parameters.
     */
    private _listByResourceGroup;
    /**
     * List all the servers in a given subscription.
     * @param options The options parameters.
     */
    private _list;
    /**
     * Manual failover a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param options The options parameters.
     */
    beginFailover(resourceGroupName: string, serverName: string, options?: ServersFailoverOptionalParams): Promise<PollerLike<PollOperationState<void>, void>>;
    /**
     * Manual failover a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param options The options parameters.
     */
    beginFailoverAndWait(resourceGroupName: string, serverName: string, options?: ServersFailoverOptionalParams): Promise<void>;
    /**
     * Restarts a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param parameters The required parameters for restarting a server.
     * @param options The options parameters.
     */
    beginRestart(resourceGroupName: string, serverName: string, parameters: ServerRestartParameter, options?: ServersRestartOptionalParams): Promise<PollerLike<PollOperationState<void>, void>>;
    /**
     * Restarts a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param parameters The required parameters for restarting a server.
     * @param options The options parameters.
     */
    beginRestartAndWait(resourceGroupName: string, serverName: string, parameters: ServerRestartParameter, options?: ServersRestartOptionalParams): Promise<void>;
    /**
     * Starts a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param options The options parameters.
     */
    beginStart(resourceGroupName: string, serverName: string, options?: ServersStartOptionalParams): Promise<PollerLike<PollOperationState<void>, void>>;
    /**
     * Starts a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param options The options parameters.
     */
    beginStartAndWait(resourceGroupName: string, serverName: string, options?: ServersStartOptionalParams): Promise<void>;
    /**
     * Stops a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param options The options parameters.
     */
    beginStop(resourceGroupName: string, serverName: string, options?: ServersStopOptionalParams): Promise<PollerLike<PollOperationState<void>, void>>;
    /**
     * Stops a server.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param serverName The name of the server.
     * @param options The options parameters.
     */
    beginStopAndWait(resourceGroupName: string, serverName: string, options?: ServersStopOptionalParams): Promise<void>;
    /**
     * ListByResourceGroupNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param nextLink The nextLink from the previous successful call to the ListByResourceGroup method.
     * @param options The options parameters.
     */
    private _listByResourceGroupNext;
    /**
     * ListNext
     * @param nextLink The nextLink from the previous successful call to the List method.
     * @param options The options parameters.
     */
    private _listNext;
}
//# sourceMappingURL=servers.d.ts.map