import type { PagedAsyncIterableIterator } from "@azure/core-paging";
import type { SiteCertificates } from "../operationsInterfaces/index.js";
import type { WebSiteManagementClient } from "../webSiteManagementClient.js";
import type { Certificate, SiteCertificatesListOptionalParams, SiteCertificatesListSlotOptionalParams, SiteCertificatesGetOptionalParams, SiteCertificatesGetResponse, SiteCertificatesCreateOrUpdateOptionalParams, SiteCertificatesCreateOrUpdateResponse, SiteCertificatesDeleteOptionalParams, CertificatePatchResource, SiteCertificatesUpdateOptionalParams, SiteCertificatesUpdateResponse, SiteCertificatesGetSlotOptionalParams, SiteCertificatesGetSlotResponse, SiteCertificatesCreateOrUpdateSlotOptionalParams, SiteCertificatesCreateOrUpdateSlotResponse, SiteCertificatesDeleteSlotOptionalParams, SiteCertificatesUpdateSlotOptionalParams, SiteCertificatesUpdateSlotResponse } from "../models/index.js";
/** Class containing SiteCertificates operations. */
export declare class SiteCertificatesImpl implements SiteCertificates {
    private readonly client;
    /**
     * Initialize a new instance of the class SiteCertificates class.
     * @param client Reference to the service client
     */
    constructor(client: WebSiteManagementClient);
    /**
     * Get all certificates in a resource group under a site.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param options The options parameters.
     */
    list(resourceGroupName: string, name: string, options?: SiteCertificatesListOptionalParams): PagedAsyncIterableIterator<Certificate>;
    private listPagingPage;
    private listPagingAll;
    /**
     * Get all certificates in a resource group for a given site and a deployment slot.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding
     *             for the production slot.
     * @param options The options parameters.
     */
    listSlot(resourceGroupName: string, name: string, slot: string, options?: SiteCertificatesListSlotOptionalParams): PagedAsyncIterableIterator<Certificate>;
    private listSlotPagingPage;
    private listSlotPagingAll;
    /**
     * Get all certificates in a resource group under a site.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param options The options parameters.
     */
    private _list;
    /**
     * Get a certificate belonging to a given site.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param certificateName Name of the certificate.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, name: string, certificateName: string, options?: SiteCertificatesGetOptionalParams): Promise<SiteCertificatesGetResponse>;
    /**
     * Create or update a certificate under a given site.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param certificateName Name of the certificate.
     * @param certificateEnvelope Details of certificate, if it exists already.
     * @param options The options parameters.
     */
    createOrUpdate(resourceGroupName: string, name: string, certificateName: string, certificateEnvelope: Certificate, options?: SiteCertificatesCreateOrUpdateOptionalParams): Promise<SiteCertificatesCreateOrUpdateResponse>;
    /**
     * Delete a certificate from the site.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param certificateName Name of the certificate.
     * @param options The options parameters.
     */
    delete(resourceGroupName: string, name: string, certificateName: string, options?: SiteCertificatesDeleteOptionalParams): Promise<void>;
    /**
     * Create or update a certificate under a given site.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param certificateName Name of the certificate.
     * @param certificateEnvelope Details of certificate, if it exists already.
     * @param options The options parameters.
     */
    update(resourceGroupName: string, name: string, certificateName: string, certificateEnvelope: CertificatePatchResource, options?: SiteCertificatesUpdateOptionalParams): Promise<SiteCertificatesUpdateResponse>;
    /**
     * Get all certificates in a resource group for a given site and a deployment slot.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding
     *             for the production slot.
     * @param options The options parameters.
     */
    private _listSlot;
    /**
     * Get a certificate for a given site and deployment slot.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding
     *             for the production slot.
     * @param certificateName Name of the certificate.
     * @param options The options parameters.
     */
    getSlot(resourceGroupName: string, name: string, slot: string, certificateName: string, options?: SiteCertificatesGetSlotOptionalParams): Promise<SiteCertificatesGetSlotResponse>;
    /**
     * Create or update a certificate in a given site and deployment slot.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding
     *             for the production slot.
     * @param certificateName Name of the certificate.
     * @param certificateEnvelope Details of certificate, if it exists already.
     * @param options The options parameters.
     */
    createOrUpdateSlot(resourceGroupName: string, name: string, slot: string, certificateName: string, certificateEnvelope: Certificate, options?: SiteCertificatesCreateOrUpdateSlotOptionalParams): Promise<SiteCertificatesCreateOrUpdateSlotResponse>;
    /**
     * Delete a certificate for a given site and deployment slot.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding
     *             for the production slot.
     * @param certificateName Name of the certificate.
     * @param options The options parameters.
     */
    deleteSlot(resourceGroupName: string, name: string, slot: string, certificateName: string, options?: SiteCertificatesDeleteSlotOptionalParams): Promise<void>;
    /**
     * Create or update a certificate for a site and deployment slot.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding
     *             for the production slot.
     * @param certificateName Name of the certificate.
     * @param certificateEnvelope Details of certificate, if it exists already.
     * @param options The options parameters.
     */
    updateSlot(resourceGroupName: string, name: string, slot: string, certificateName: string, certificateEnvelope: CertificatePatchResource, options?: SiteCertificatesUpdateSlotOptionalParams): Promise<SiteCertificatesUpdateSlotResponse>;
    /**
     * ListNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param nextLink The nextLink from the previous successful call to the List method.
     * @param options The options parameters.
     */
    private _listNext;
    /**
     * ListSlotNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param name Name of the site.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding
     *             for the production slot.
     * @param nextLink The nextLink from the previous successful call to the ListSlot method.
     * @param options The options parameters.
     */
    private _listSlotNext;
}
//# sourceMappingURL=siteCertificates.d.ts.map