/**
 * AdvancedSecurity ver10 module
 * @author Andrew D.Laptev <a.d.laptev@gmail.com>
 * @see https://www.onvif.org/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl
 */
import { Onvif } from './onvif';
import Service from './service';
import { AddCertPathValidationPolicyAssignment, AddDot1XConfiguration, AddMediaSigningCertificateAssignment, AddServerCertificateAssignment, Capabilities, CreateAuthorizationServerConfiguration, CreateAuthorizationServerConfigurationResponse, CreateCertPathValidationPolicy, CreateCertPathValidationPolicyResponse, CreateCertificationPath, CreateCertificationPathResponse, CreateECCKeyPair, CreateECCKeyPairResponse, CreatePKCS10CSR, CreatePKCS10CSRResponse, CreateRSAKeyPair, CreateRSAKeyPairResponse, CreateSelfSignedCertificate, CreateSelfSignedCertificateResponse, DeleteAuthorizationServerConfiguration, DeleteCertificate, DeleteCertPathValidationPolicy, DeleteCertificationPath, DeleteCRL, DeleteDot1XConfiguration, DeleteKey, DeleteNetworkInterfaceDot1XConfiguration, DeleteNetworkInterfaceDot1XConfigurationResponse, DeletePassphrase, GetAllCertificatesResponse, GetAllCertificationPathsResponse, GetAllCertPathValidationPoliciesResponse, GetAllCRLsResponse, GetAllDot1XConfigurationsResponse, GetAllKeysResponse, GetAllPassphrasesResponse, GetAssignedCertPathValidationPoliciesResponse, GetAssignedMediaSigningCertificatesResponse, GetAssignedServerCertificatesResponse, GetAuthorizationServerConfigurations, GetAuthorizationServerConfigurationsResponse, GetCertificate, GetCertificateResponse, GetCertificationPath, GetCertificationPathResponse, GetCertPathValidationPolicy, GetCertPathValidationPolicyResponse, GetClientAuthenticationRequiredResponse, GetCnMapsToUserResponse, GetCRL, GetCRLResponse, GetDot1XConfiguration, GetDot1XConfigurationResponse, GetEnabledTLSVersionsResponse, GetJWTConfigurationResponse, GetKeyStatus, GetNetworkInterfaceDot1XConfiguration, GetNetworkInterfaceDot1XConfigurationResponse, GetPrivateKeyStatus, RemoveCertPathValidationPolicyAssignment, RemoveMediaSigningCertificateAssignment, RemoveServerCertificateAssignment, ReplaceCertPathValidationPolicyAssignment, ReplaceServerCertificateAssignment, SetAuthorizationServerConfiguration, SetCertPathValidationPolicy, SetCertificationPath, SetClientAuthenticationRequired, SetCnMapsToUser, SetEnabledTLSVersions, SetJWTConfiguration, SetNetworkInterfaceDot1XConfiguration, SetNetworkInterfaceDot1XConfigurationResponse, UploadCertificate, UploadCertificateResponse, UploadCertificateWithPrivateKeyInPKCS12, UploadCertificateWithPrivateKeyInPKCS12Response, UploadCRL, UploadCRLResponse, UploadKeyPairInPKCS8, UploadKeyPairInPKCS8Response, UploadPassphrase, UploadPassphraseResponse, AddDot1XConfigurationResponse } from './interfaces/advancedsecurity';
/**
 * AdvancedSecurity service
 * @example
 * ```ts
 *  const caps = await cam.advancedSecurity.getServiceCapabilities();
 *  const keys = await cam.advancedSecurity.getAllKeys();
 *  console.log(caps.keystoreCapabilities, keys);
 * ```
 */
export default class AdvancedSecurity extends Service {
    constructor(onvif: Onvif);
    private static dnAttributeToBuild;
    private static multiValuedRDNToBuild;
    private static distinguishedNameToBuild;
    private static algorithmIdentifierToBuild;
    private static x509v3ExtensionToBuild;
    private static certificateIDsToBuild;
    private static certificationPathToBuild;
    private static certPathValidationParametersToBuild;
    private static trustAnchorToBuild;
    private static certPathValidationPolicyToBuild;
    private static customClaimToBuild;
    private static jwtConfigurationToBuild;
    private static dot1XStageToBuild;
    private static dot1XConfigurationToBuild;
    private static authorizationServerConfigurationDataToBuild;
    private static authorizationServerConfigurationToBuild;
    /**
     * Returns the capabilities of the advanced security service.
     */
    getServiceCapabilities(): Promise<Capabilities>;
    /**
     * Returns the JWT configuration.
     */
    getJWTConfiguration(): Promise<GetJWTConfigurationResponse['configuration']>;
    /**
     * Sets the JWT configuration.
     * @param options
     */
    setJWTConfiguration({ configuration }: SetJWTConfiguration): Promise<void>;
    /**
     * Creates an RSA key pair.
     * @param options
     */
    createRSAKeyPair(options: CreateRSAKeyPair): Promise<CreateRSAKeyPairResponse>;
    /**
     * Creates an ECC key pair.
     * @param options
     */
    createECCKeyPair(options: CreateECCKeyPair): Promise<CreateECCKeyPairResponse>;
    /**
     * Uploads a key pair in PKCS#8 format.
     * @param options
     */
    uploadKeyPairInPKCS8(options: UploadKeyPairInPKCS8): Promise<UploadKeyPairInPKCS8Response['keyID']>;
    /**
     * Uploads a certificate with private key in PKCS#12 format.
     * @param options
     */
    uploadCertificateWithPrivateKeyInPKCS12(options: UploadCertificateWithPrivateKeyInPKCS12): Promise<UploadCertificateWithPrivateKeyInPKCS12Response>;
    /**
     * Returns the status of a key.
     * @param options
     */
    getKeyStatus({ keyID }: GetKeyStatus): Promise<string>;
    /**
     * Returns whether a key pair contains a private key.
     * @param options
     */
    getPrivateKeyStatus({ keyID }: GetPrivateKeyStatus): Promise<boolean>;
    /**
     * Returns information about all keys in the keystore.
     */
    getAllKeys(): Promise<GetAllKeysResponse['keyAttribute']>;
    /**
     * Deletes a key from the keystore.
     * @param options
     */
    deleteKey({ keyID }: DeleteKey): Promise<void>;
    /**
     * Creates a PKCS#10 certificate signing request.
     * @param options
     */
    createPKCS10CSR(options: CreatePKCS10CSR): Promise<CreatePKCS10CSRResponse['PKCS10CSR']>;
    /**
     * Creates a self-signed certificate.
     * @param options
     */
    createSelfSignedCertificate(options: CreateSelfSignedCertificate): Promise<CreateSelfSignedCertificateResponse['certificateID']>;
    /**
     * Uploads an X.509 certificate.
     * @param options
     */
    uploadCertificate(options: UploadCertificate): Promise<UploadCertificateResponse>;
    /**
     * Returns a certificate by ID.
     * @param options
     */
    getCertificate({ certificateID }: GetCertificate): Promise<GetCertificateResponse['certificate']>;
    /**
     * Returns all certificates in the keystore.
     */
    getAllCertificates(): Promise<GetAllCertificatesResponse['certificate']>;
    /**
     * Deletes a certificate from the keystore.
     * @param options
     */
    deleteCertificate({ certificateID }: DeleteCertificate): Promise<void>;
    /**
     * Creates a certification path.
     * @param options
     */
    createCertificationPath(options: CreateCertificationPath): Promise<CreateCertificationPathResponse['certificationPathID']>;
    /**
     * Returns a certification path by ID.
     * @param options
     */
    getCertificationPath({ certificationPathID, }: GetCertificationPath): Promise<GetCertificationPathResponse['certificationPath']>;
    /**
     * Returns IDs of all certification paths.
     */
    getAllCertificationPaths(): Promise<GetAllCertificationPathsResponse['certificationPathID']>;
    /**
     * Updates a certification path.
     * @param options
     */
    setCertificationPath(options: SetCertificationPath): Promise<void>;
    /**
     * Deletes a certification path.
     * @param options
     */
    deleteCertificationPath({ certificationPathID }: DeleteCertificationPath): Promise<void>;
    /**
     * Uploads a passphrase.
     * @param options
     */
    uploadPassphrase(options: UploadPassphrase): Promise<UploadPassphraseResponse['passphraseID']>;
    /**
     * Returns all passphrases in the keystore.
     */
    getAllPassphrases(): Promise<GetAllPassphrasesResponse['passphraseAttribute']>;
    /**
     * Deletes a passphrase.
     * @param options
     */
    deletePassphrase({ passphraseID }: DeletePassphrase): Promise<void>;
    /**
     * Uploads a CRL.
     * @param options
     */
    uploadCRL(options: UploadCRL): Promise<UploadCRLResponse['crlID']>;
    /**
     * Returns a CRL by ID.
     * @param options
     */
    getCRL({ crlID }: GetCRL): Promise<GetCRLResponse['crl']>;
    /**
     * Returns all CRLs in the keystore.
     */
    getAllCRLs(): Promise<GetAllCRLsResponse['crl']>;
    /**
     * Deletes a CRL.
     * @param options
     */
    deleteCRL({ crlID }: DeleteCRL): Promise<void>;
    /**
     * Creates a certification path validation policy.
     * @param options
     */
    createCertPathValidationPolicy(options: CreateCertPathValidationPolicy): Promise<CreateCertPathValidationPolicyResponse['certPathValidationPolicyID']>;
    /**
     * Returns a certification path validation policy by ID.
     * @param options
     */
    getCertPathValidationPolicy({ certPathValidationPolicyID, }: GetCertPathValidationPolicy): Promise<GetCertPathValidationPolicyResponse['certPathValidationPolicy']>;
    /**
     * Returns all certification path validation policies.
     */
    getAllCertPathValidationPolicies(): Promise<GetAllCertPathValidationPoliciesResponse['certPathValidationPolicy']>;
    /**
     * Updates a certification path validation policy.
     * @param options
     */
    setCertPathValidationPolicy(options: SetCertPathValidationPolicy): Promise<void>;
    /**
     * Deletes a certification path validation policy.
     * @param options
     */
    deleteCertPathValidationPolicy({ certPathValidationPolicyID }: DeleteCertPathValidationPolicy): Promise<void>;
    /**
     * Assigns a certification path to the TLS server.
     * @param options
     */
    addServerCertificateAssignment({ certificationPathID }: AddServerCertificateAssignment): Promise<void>;
    /**
     * Removes a TLS server certificate assignment.
     * @param options
     */
    removeServerCertificateAssignment({ certificationPathID }: RemoveServerCertificateAssignment): Promise<void>;
    /**
     * Replaces a TLS server certificate assignment.
     * @param options
     */
    replaceServerCertificateAssignment(options: ReplaceServerCertificateAssignment): Promise<void>;
    /**
     * Returns certification paths assigned to the TLS server.
     */
    getAssignedServerCertificates(): Promise<GetAssignedServerCertificatesResponse['certificationPathID']>;
    /**
     * Sets enabled TLS versions.
     * @param options
     */
    setEnabledTLSVersions({ versions }: SetEnabledTLSVersions): Promise<void>;
    /**
     * Returns enabled TLS versions.
     */
    getEnabledTLSVersions(): Promise<GetEnabledTLSVersionsResponse['versions']>;
    /**
     * Sets whether client authentication is required.
     * @param options
     */
    setClientAuthenticationRequired({ clientAuthenticationRequired, }: SetClientAuthenticationRequired): Promise<void>;
    /**
     * Returns whether client authentication is required.
     */
    getClientAuthenticationRequired(): Promise<GetClientAuthenticationRequiredResponse['clientAuthenticationRequired']>;
    /**
     * Sets whether CN maps to a local user.
     * @param options
     */
    setCnMapsToUser({ cnMapsToUser }: SetCnMapsToUser): Promise<void>;
    /**
     * Returns whether CN maps to a local user.
     */
    getCnMapsToUser(): Promise<GetCnMapsToUserResponse['cnMapsToUser']>;
    /**
     * Assigns a certification path validation policy to the TLS server.
     * @param options
     */
    addCertPathValidationPolicyAssignment({ certPathValidationPolicyID, }: AddCertPathValidationPolicyAssignment): Promise<void>;
    /**
     * Removes a certification path validation policy assignment.
     * @param options
     */
    removeCertPathValidationPolicyAssignment({ certPathValidationPolicyID, }: RemoveCertPathValidationPolicyAssignment): Promise<void>;
    /**
     * Replaces a certification path validation policy assignment.
     * @param options
     */
    replaceCertPathValidationPolicyAssignment(options: ReplaceCertPathValidationPolicyAssignment): Promise<void>;
    /**
     * Returns assigned certification path validation policies.
     */
    getAssignedCertPathValidationPolicies(): Promise<GetAssignedCertPathValidationPoliciesResponse['certPathValidationPolicyID']>;
    /**
     * Adds an 802.1X configuration.
     * @param options
     */
    addDot1XConfiguration({ dot1XConfiguration, }: AddDot1XConfiguration): Promise<AddDot1XConfigurationResponse['dot1XID']>;
    /**
     * Returns all 802.1X configurations.
     */
    getAllDot1XConfigurations(): Promise<GetAllDot1XConfigurationsResponse['configuration']>;
    /**
     * Returns an 802.1X configuration by ID.
     * @param options
     */
    getDot1XConfiguration({ dot1XID, }: GetDot1XConfiguration): Promise<GetDot1XConfigurationResponse['dot1XConfiguration']>;
    /**
     * Deletes an 802.1X configuration.
     * @param options
     */
    deleteDot1XConfiguration({ dot1XID }: DeleteDot1XConfiguration): Promise<void>;
    /**
     * Assigns an 802.1X configuration to a network interface.
     * @param options
     */
    setNetworkInterfaceDot1XConfiguration(options: SetNetworkInterfaceDot1XConfiguration): Promise<SetNetworkInterfaceDot1XConfigurationResponse['rebootNeeded']>;
    /**
     * Returns the 802.1X configuration assigned to a network interface.
     * @param options
     */
    getNetworkInterfaceDot1XConfiguration({ token, }: GetNetworkInterfaceDot1XConfiguration): Promise<GetNetworkInterfaceDot1XConfigurationResponse['dot1XID']>;
    /**
     * Removes the 802.1X configuration from a network interface.
     * @param options
     */
    deleteNetworkInterfaceDot1XConfiguration({ token, }: DeleteNetworkInterfaceDot1XConfiguration): Promise<DeleteNetworkInterfaceDot1XConfigurationResponse['rebootNeeded']>;
    /**
     * Assigns a certification path for media signing.
     * @param options
     */
    addMediaSigningCertificateAssignment({ certificationPathID, }: AddMediaSigningCertificateAssignment): Promise<void>;
    /**
     * Removes a media signing certificate assignment.
     * @param options
     */
    removeMediaSigningCertificateAssignment({ certificationPathID, }: RemoveMediaSigningCertificateAssignment): Promise<void>;
    /**
     * Returns certification paths assigned for media signing.
     */
    getAssignedMediaSigningCertificates(): Promise<GetAssignedMediaSigningCertificatesResponse['certificationPathID']>;
    /**
     * Returns authorization server configurations.
     * @param options
     */
    getAuthorizationServerConfigurations(options?: GetAuthorizationServerConfigurations): Promise<GetAuthorizationServerConfigurationsResponse['configuration']>;
    /**
     * Creates an authorization server configuration.
     * @param options
     */
    createAuthorizationServerConfiguration({ configuration, }: CreateAuthorizationServerConfiguration): Promise<CreateAuthorizationServerConfigurationResponse['token']>;
    /**
     * Updates an authorization server configuration.
     * @param options
     */
    setAuthorizationServerConfiguration({ configuration }: SetAuthorizationServerConfiguration): Promise<void>;
    /**
     * Deletes an authorization server configuration.
     * @param options
     */
    deleteAuthorizationServerConfiguration({ token }: DeleteAuthorizationServerConfiguration): Promise<void>;
}
