import type { PagedAsyncIterableIterator } from "@azure/core-paging";
import type { Certificate, SiteCertificatesListOptionalParams, SiteCertificatesListSlotOptionalParams, SiteCertificatesGetOptionalParams, SiteCertificatesGetResponse, SiteCertificatesCreateOrUpdateOptionalParams, SiteCertificatesCreateOrUpdateResponse, SiteCertificatesDeleteOptionalParams, CertificatePatchResource, SiteCertificatesUpdateOptionalParams, SiteCertificatesUpdateResponse, SiteCertificatesGetSlotOptionalParams, SiteCertificatesGetSlotResponse, SiteCertificatesCreateOrUpdateSlotOptionalParams, SiteCertificatesCreateOrUpdateSlotResponse, SiteCertificatesDeleteSlotOptionalParams, SiteCertificatesUpdateSlotOptionalParams, SiteCertificatesUpdateSlotResponse } from "../models/index.js";
/** Interface representing a SiteCertificates. */
export interface SiteCertificates {
    /**
     * 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>;
    /**
     * 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>;
    /**
     * 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 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>;
}
//# sourceMappingURL=siteCertificates.d.ts.map