/**
 * SAP Security Content Client
 *
 * This file contains a client class for interacting with the
 * Security Content API of SAP Cloud Integration. This API allows management of
 * security artifacts like User Credentials, OAuth2 Credentials, Keystores
 * (Certificates, Key Pairs), Secure Parameters, Certificate-to-User Mappings,
 * and Access Policies.
 *
 * @module sap-integration-suite-client/security-content
 */
import { Api as SecurityContentApi, ComSapHciApiUserCredential, ComSapHciApiUserCredentialCreate, ComSapHciApiUserCredentialUpdate, ComSapHciApiSecureParameter, ComSapHciApiSecureParameterCreate, ComSapHciApiSecureParameterUpdate, ComSapHciApiOAuth2ClientCredential, ComSapHciApiOAuth2ClientCredentialCreate, ComSapHciApiOAuth2ClientCredentialUpdate, ComSapHciApiKeystoreEntry, ComSapHciApiKeystoreEntryImported, ComSapHciApiKeyPairGenerationRequestCreate, ComSapHciApiRSAKeyGenerationRequestCreate, ComSapHciApiSSHKeyGenerationRequestCreate, ComSapHciApiSSHKeyGenerationRequestCreateResponse, ComSapHciApiChainCertificate, ComSapHciApiHistoryKeystoreEntry, ComSapHciApiCertificateUserMapping, ComSapHciApiCertificateUserMappingCreate, ComSapHciApiAccessPolicy, ComSapHciApiAccessPolicyCreate, ComSapHciApiArtifactReference, ComSapHciApiArtifactReferenceCreatesep } from '../types/sap.SecurityContent';
import { CacheManager } from '../core/cache-manager';
import { CacheInfo } from '../types/cache';
/**
 * SAP Security Content Client
 *
 * Provides simplified access to the Security Content API.
 */
export declare class SecurityContentClient {
    private api;
    private normalizer;
    private cacheManager;
    private hostname;
    /**
     * Creates a new SecurityContentClient
     *
     * @param {SecurityContentApi<unknown>} api - The underlying API instance
     * @param {CacheManager} [cacheManager] - Optional: CacheManager for cache operations
     * @param {string} [hostname] - Optional: Hostname for cache key generation
     */
    constructor(api: SecurityContentApi<unknown>, cacheManager?: CacheManager | null, hostname?: string);
    /**
     * Retrieves all deployed user credentials.
     *
     * @returns {Promise<ComSapHciApiUserCredential[]>} Promise resolving to a list of user credentials.
     *
     * @example
     * const credentials = await client.getUserCredentials();
     */
    getUserCredentials(): Promise<ComSapHciApiUserCredential[]>;
    /**
     * Adds new user credentials.
     *
     * @param {ComSapHciApiUserCredentialCreate} credentialData Data for the new user credential.
     * @returns {Promise<void>} Promise resolving when the credential is created.
     *
     * @example
     * await client.createUserCredential({
     *   Name: 'MySFTPCreds',
     *   Kind: 'default', // or 'successfactors', 'openconnectors'
     *   User: 'sftpUser',
     *   Password: 'sftpPassword'
     * });
     */
    createUserCredential(credentialData: ComSapHciApiUserCredentialCreate): Promise<void>;
    /**
     * Retrieves a specific user credential by its name.
     *
     * @param {string} name The name of the user credential.
     * @returns {Promise<ComSapHciApiUserCredential | undefined>} Promise resolving to the credential or undefined.
     *
     * @example
     * const cred = await client.getUserCredentialByName('MySFTPCreds');
     */
    getUserCredentialByName(name: string): Promise<ComSapHciApiUserCredential | undefined>;
    /**
     * Updates an existing user credential.
     *
     * @param {string} name The name of the credential to update.
     * @param {ComSapHciApiUserCredentialUpdate} credentialData Updated data for the credential.
     * @returns {Promise<void>} Promise resolving when the credential is updated.
     *
     * @example
     * await client.updateUserCredential('MySFTPCreds', { Password: 'newPassword' });
     */
    updateUserCredential(name: string, credentialData: ComSapHciApiUserCredentialUpdate): Promise<void>;
    /**
     * Deletes a user credential.
     *
     * @param {string} name The name of the credential to delete.
     * @returns {Promise<void>} Promise resolving when the credential is deleted.
     *
     * @example
     * await client.deleteUserCredential('OldCreds');
     */
    deleteUserCredential(name: string): Promise<void>;
    /**
     * Retrieves all deployed secure parameters (values are not returned).
     * Note: This resource is only available in the Neo environment.
     *
     * @returns {Promise<ComSapHciApiSecureParameter[]>} Promise resolving to a list of secure parameters.
     *
     * @example
     * const params = await client.getSecureParameters();
     */
    getSecureParameters(): Promise<ComSapHciApiSecureParameter[]>;
    /**
     * Adds a new secure parameter.
     * Note: This resource is only available in the Neo environment.
     *
     * @param {ComSapHciApiSecureParameterCreate} parameterData Data for the new secure parameter.
     * @returns {Promise<void>} Promise resolving when the parameter is created.
     *
     * @example
     * await client.createSecureParameter({ Name: 'MyApiKey', SecureParam: 'secretValue' });
     */
    createSecureParameter(parameterData: ComSapHciApiSecureParameterCreate): Promise<void>;
    /**
     * Retrieves a specific secure parameter by its name (value is not returned).
     * Note: This resource is only available in the Neo environment.
     *
     * @param {string} name The name of the secure parameter.
     * @returns {Promise<ComSapHciApiSecureParameter | undefined>} Promise resolving to the parameter or undefined.
     *
     * @example
     * const param = await client.getSecureParameterByName('MyApiKey');
     */
    getSecureParameterByName(name: string): Promise<ComSapHciApiSecureParameter | undefined>;
    /**
     * Updates an existing secure parameter.
     * Note: This resource is only available in the Neo environment.
     *
     * @param {string} name The name of the parameter to update.
     * @param {ComSapHciApiSecureParameterUpdate} parameterData Updated data (can include Name, Description, SecureParam).
     * @returns {Promise<void>} Promise resolving when the parameter is updated.
     *
     * @example
     * await client.updateSecureParameter('MyApiKey', { SecureParam: 'newSecretValue' });
     */
    updateSecureParameter(name: string, parameterData: ComSapHciApiSecureParameterUpdate): Promise<void>;
    /**
     * Deletes a secure parameter.
     * Note: This resource is only available in the Neo environment.
     *
     * @param {string} name The name of the parameter to delete.
     * @returns {Promise<void>} Promise resolving when the parameter is deleted.
     *
     * @example
     * await client.deleteSecureParameter('OldApiKey');
     */
    deleteSecureParameter(name: string): Promise<void>;
    /**
     * Retrieves all OAuth2 client credentials.
     *
     * @param {boolean} [expandCustomParameters=false] If true, expands custom parameters associated with the credentials.
     * @returns {Promise<ComSapHciApiOAuth2ClientCredential[]>} Promise resolving to a list of OAuth2 credentials.
     *
     * @example
     * const oauthCreds = await client.getOAuth2ClientCredentials();
     * const oauthCredsWithParams = await client.getOAuth2ClientCredentials(true);
     */
    getOAuth2ClientCredentials(expandCustomParameters?: boolean): Promise<ComSapHciApiOAuth2ClientCredential[]>;
    /**
     * Adds new OAuth2 client credentials.
     *
     * @param {ComSapHciApiOAuth2ClientCredentialCreate} credentialData Data for the new OAuth2 credential.
     * @returns {Promise<void>} Promise resolving when the credential is created.
     *
     * @example
     * await client.createOAuth2ClientCredential({
     *   Name: 'MyOAuthApp',
     *   TokenServiceUrl: 'https://example.com/oauth/token',
     *   ClientId: 'client-id',
     *   ClientSecret: 'client-secret'
     * });
     */
    createOAuth2ClientCredential(credentialData: ComSapHciApiOAuth2ClientCredentialCreate): Promise<void>;
    /**
     * Retrieves a specific OAuth2 client credential by its name.
     *
     * @param {string} name The name of the OAuth2 credential.
     * @param {boolean} [expandCustomParameters=false] If true, expands custom parameters.
     * @returns {Promise<ComSapHciApiOAuth2ClientCredential | undefined>} Promise resolving to the credential or undefined.
     *
     * @example
     * const cred = await client.getOAuth2ClientCredentialByName('MyOAuthApp');
     */
    getOAuth2ClientCredentialByName(name: string, expandCustomParameters?: boolean): Promise<ComSapHciApiOAuth2ClientCredential | undefined>;
    /**
     * Updates an existing OAuth2 client credential.
     *
     * @param {string} name The name of the credential to update.
     * @param {ComSapHciApiOAuth2ClientCredentialUpdate} credentialData Updated data.
     * @returns {Promise<void>} Promise resolving when the credential is updated.
     *
     * @example
     * await client.updateOAuth2ClientCredential('MyOAuthApp', { ClientSecret: 'new-secret' });
     */
    updateOAuth2ClientCredential(name: string, credentialData: ComSapHciApiOAuth2ClientCredentialUpdate): Promise<void>;
    /**
     * Deletes an OAuth2 client credential.
     *
     * @param {string} name The name of the credential to delete.
     * @returns {Promise<void>} Promise resolving when the credential is deleted.
     *
     * @example
     * await client.deleteOAuth2ClientCredential('OldOAuthApp');
     */
    deleteOAuth2ClientCredential(name: string): Promise<void>;
    /**
     * Retrieves properties (like size) and optionally entries for a specified keystore.
     *
     * @param {('system' | 'backup_admin_system')} keystoreName Name of the keystore.
     * @param {boolean} [expandEntries=false] If true, includes the list of entries in the response.
     * @param {('Entries' | 'LastModifiedBy' | 'LastModifiedTime' | 'Size')[]} [select] Properties to select.
     * @returns {Promise<any>} Promise resolving to the keystore properties (structure varies based on select/expand).
     *
     * @example
     * const systemKeystoreInfo = await client.getKeystoreProperties('system');
     * console.log('System Keystore Size:', systemKeystoreInfo?.Size);
     *
     * @example
     * // Get keystore with entries expanded
     * const systemKeystoreWithEntries = await client.getKeystoreProperties('system', true);
     */
    getKeystoreProperties(keystoreName: 'system' | 'backup_admin_system', expandEntries?: boolean, select?: ('Entries' | 'LastModifiedBy' | 'LastModifiedTime' | 'Size')[]): Promise<any>;
    /**
     * Retrieves the number of entries in a specified keystore.
     *
     * @param {('system' | 'KeyRenewal')} keystoreName Name of the keystore.
     * @returns {Promise<number>} Promise resolving to the number of entries.
     *
     * @example
     * const systemSize = await client.getKeystoreSize('system');
     */
    getKeystoreSize(keystoreName: 'system' | 'KeyRenewal'): Promise<number>;
    /**
     * Imports entries from a JKS or JCEKS keystore file into the system keystore.
     *
     * @param {File} keystoreFile Keystore file (JKS/JCEKS format).
     * @param {string} password Password for the keystore file.
     * @param {('replace' | 'merge' | 'overwrite')} [importOption='overwrite'] How to handle existing entries.
     * @param {boolean} [returnKeystoreEntries=true] If true, returns the import status for each entry.
     * @returns {Promise<ComSapHciApiKeystoreEntryImported[] | undefined>} Promise resolving to the list of imported entries with status, if requested.
     *
     * @example
     * // Assuming 'file' is a File object from an input element
     * // const file = document.getElementById('keystoreInput').files[0];
     * // await client.importKeystore(file, 'keystorePassword', 'merge');
     */
    importKeystore(keystoreFile: File, password: string, importOption?: 'replace' | 'merge' | 'overwrite', returnKeystoreEntries?: boolean): Promise<ComSapHciApiKeystoreEntryImported[] | undefined>;
    /**
     * Backs up tenant administrator-owned entries from the system keystore to the backup keystore.
     * This overwrites the previous backup.
     *
     * @returns {Promise<void>} Promise resolving when the backup is complete.
     *
     * @example
     * await client.backupKeystore();
     */
    backupKeystore(): Promise<void>;
    /**
     * Exports the public content of a keystore (system or backup).
     *
     * Note: API returns `void`, the content is in the response body (JKS format).
     *
     * @param {('system' | 'backup_admin_system')} keystoreName Name of the keystore to export.
     * @returns {Promise<any>} Promise resolving to the exported keystore content (JKS).
     *
     * @example
     * const exportedKeystore = await client.exportKeystore('system');
     * // Process exportedKeystore (e.g., save as file)
     */
    exportKeystore(_keystoreName: 'system' | 'backup_admin_system'): Promise<any>;
    /**
     * Restores tenant administrator-owned entries from the backup keystore to the system keystore.
     *
     * @param {('replace' | 'overwrite')} [importOption='overwrite'] How to handle existing entries in the system keystore.
     * @param {boolean} [returnKeystoreEntries=true] If true, returns the restore status for each entry.
     * @returns {Promise<ComSapHciApiKeystoreEntryImported[] | undefined>} Promise resolving to the list of restored entries with status, if requested.
     *
     * @example
     * await client.restoreKeystoreBackup('overwrite');
     */
    restoreKeystoreBackup(importOption?: 'replace' | 'overwrite', returnKeystoreEntries?: boolean): Promise<ComSapHciApiKeystoreEntryImported[] | undefined>;
    /**
     * Deletes multiple specified entries (owned by tenant administrator) from the system keystore.
     *
     * @param {string[]} aliasesToDelete List of aliases to delete.
     * @param {boolean} [returnKeystoreEntries=false] If true, returns the deletion status for each entry.
     * @returns {Promise<ComSapHciApiKeystoreEntryImported[] | undefined>} Promise resolving to the list of entries with status, if requested.
     *
     * @example
     * await client.deleteKeystoreEntries(['alias1', 'alias2']);
     */
    deleteKeystoreEntries(aliasesToDelete: string[], returnKeystoreEntries?: boolean): Promise<ComSapHciApiKeystoreEntryImported[] | undefined>;
    /**
     * Retrieves entries from the history keystore.
     *
     * @param {('Alias' | 'Hexalias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Validity')[]} [select] Properties to select.
     * @returns {Promise<ComSapHciApiHistoryKeystoreEntry[]>} Promise resolving to a list of history entries.
     *
     * @example
     * const history = await client.getKeystoreHistoryEntries();
     */
    getKeystoreHistoryEntries(select?: ('Alias' | 'Hexalias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Validity')[]): Promise<ComSapHciApiHistoryKeystoreEntry[]>;
    /**
     * Retrieves a specific entry from the history keystore by its hex-encoded alias.
     *
     * @param {string} hexAlias Hex-encoded alias of the history entry.
     * @param {('Alias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Validity')[]} [select] Properties to select.
     * @returns {Promise<ComSapHciApiHistoryKeystoreEntry | undefined>} Promise resolving to the history entry or undefined.
     *
     * @example
     * const historyEntry = await client.getKeystoreHistoryEntry('historyHexAlias');
     */
    getKeystoreHistoryEntry(hexAlias: string, select?: ('Alias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Validity')[]): Promise<ComSapHciApiHistoryKeystoreEntry | undefined>;
    /**
     * Restores an entry from the history keystore to the renewal keystore.
     *
     * @param {string} hexAlias Hex-encoded alias of the history entry to restore.
     * @param {string} [destinationAlias] Optional new alias for the entry in the renewal keystore. If empty, defaults to '[number]_original_alias'.
     * @returns {Promise<void>} Promise resolving when the entry is restored.
     *
     * @example
     * await client.restoreHistoryKeystoreEntry('historyHexAlias', 'restoredAlias');
     */
    restoreHistoryKeystoreEntry(hexAlias: string, destinationAlias?: string): Promise<void>;
    /**
     * Retrieves all certificate-to-user mappings.
     * Note: This resource is only available in the Neo environment.
     *
     * @param {object} [options] Optional parameters for filtering, sorting, and selection.
     * @param {string} [options.filter] OData filter string (only `User eq 'username'` supported).
     * @param {('Id' | 'Id desc' | 'User' | 'User desc' | 'Certificate' | 'Certificate desc' | 'CreatedBy' | 'CreatedBy desc' | 'CreatedTime' | 'CreatedTime desc' | 'LastModifiedBy' | 'LastModifiedBy desc' | 'LastModifiedTime' | 'LastModifiedTime desc' | 'ValidUntil')[]} [options.orderby] Sorting order.
     * @param {('Id' | 'User' | 'Certificate' | 'LastModifiedBy' | 'LastModifiedTime' | 'CreatedBy' | 'CreatedTime' | 'ValidUntil')[]} [options.select] Properties to select.
     * @returns {Promise<ComSapHciApiCertificateUserMapping[]>} Promise resolving to a list of mappings.
     *
     * @example
     * const allMappings = await client.getCertificateUserMappings();
     * const userMappings = await client.getCertificateUserMappings({ filter: "User eq 'myuser'" });
     */
    getCertificateUserMappings(options?: {
        filter?: string;
        orderby?: ('Id' | 'Id desc' | 'User' | 'User desc' | 'Certificate' | 'Certificate desc' | 'CreatedBy' | 'CreatedBy desc' | 'CreatedTime' | 'CreatedTime desc' | 'LastModifiedBy' | 'LastModifiedBy desc' | 'LastModifiedTime' | 'LastModifiedTime desc' | 'ValidUntil')[];
        select?: ('Id' | 'User' | 'Certificate' | 'LastModifiedBy' | 'LastModifiedTime' | 'CreatedBy' | 'CreatedTime' | 'ValidUntil')[];
    }): Promise<ComSapHciApiCertificateUserMapping[]>;
    /**
     * Adds a new certificate-to-user mapping.
     * Note: This resource is only available in the Neo environment.
     *
     * @param {ComSapHciApiCertificateUserMappingCreate} mappingData Data for the new mapping (User, Certificate content).
     * @returns {Promise<ComSapHciApiCertificateUserMapping | undefined>} Promise resolving to the created mapping.
     *
     * @example
     * // Assuming 'certFile' is a File object
     * // const newMapping = await client.createCertificateUserMapping({ User: 'newUser', Certificate: certFile });
     */
    createCertificateUserMapping(mappingData: ComSapHciApiCertificateUserMappingCreate): Promise<ComSapHciApiCertificateUserMapping | undefined>;
    /**
     * Retrieves a specific certificate-to-user mapping by its ID.
     * Note: This resource is only available in the Neo environment.
     *
     * @param {string} id The ID of the mapping.
     * @param {('User' | 'Certificate' | 'LastModifiedBy' | 'LastModifiedTime' | 'CreatedBy' | 'CreatedTime')[]} [select] Properties to select.
     * @returns {Promise<ComSapHciApiCertificateUserMapping | undefined>} Promise resolving to the mapping or undefined.
     *
     * @example
     * const mapping = await client.getCertificateUserMappingById('mapping-id...');
     */
    getCertificateUserMappingById(id: string, select?: ('User' | 'Certificate' | 'LastModifiedBy' | 'LastModifiedTime' | 'CreatedBy' | 'CreatedTime')[]): Promise<ComSapHciApiCertificateUserMapping | undefined>;
    /**
     * Deletes a certificate-to-user mapping.
     * Note: This resource is only available in the Neo environment.
     *
     * @param {string} id The ID of the mapping to delete.
     * @returns {Promise<void>} Promise resolving when the mapping is deleted.
     *
     * @example
     * await client.deleteCertificateUserMapping('mapping-id-to-delete');
     */
    deleteCertificateUserMapping(id: string): Promise<void>;
    /**
     * Retrieves all Access Policies.
     *
     * @param {object} [options] Optional parameters for filtering, pagination, sorting, selection, and expansion.
     * @param {number} [options.top] Maximum number of policies to retrieve.
     * @param {number} [options.skip] Number of policies to skip.
     * @param {string} [options.filter] OData filter string (e.g., "RoleName eq 'Policy1'").
     * @param {('Id' | 'Id desc' | 'RoleName' | 'RoleName desc')[]} [options.orderby] Sorting order.
     * @param {('Id' | 'RoleName' | 'Description')[]} [options.select] Properties to select.
     * @param {boolean} [options.expandArtifactReferences=false] If true, expands the associated ArtifactReferences.
     * @param {boolean} [options.inlinecount=false] If true, includes the total count.
     * @returns {Promise<{ policies: ComSapHciApiAccessPolicy[], count?: number }>} Promise resolving to the policies and optional count.
     *
     * @example
     * const { policies } = await client.getAccessPolicies({ expandArtifactReferences: true });
     */
    getAccessPolicies(options?: {
        top?: number;
        skip?: number;
        filter?: string;
        orderby?: ('Id' | 'Id desc' | 'RoleName' | 'RoleName desc')[];
        select?: ('Id' | 'RoleName' | 'Description')[];
        expandArtifactReferences?: boolean;
        inlinecount?: boolean;
    }): Promise<{
        policies: ComSapHciApiAccessPolicy[];
        count?: number;
    }>;
    /**
     * Adds a new Access Policy, optionally with initial Artifact References.
     *
     * @param {ComSapHciApiAccessPolicyCreate} policyData Data for the new policy, including RoleName and optionally ArtifactReferences.
     * @returns {Promise<void>} Promise resolving when the policy is created.
     *
     * @example
     * await client.createAccessPolicy({
     *   RoleName: 'FlowExecutors',
     *   Description: 'Can execute specific flows',
     *   ArtifactReferences: [
     *     { Name: 'AllowFlow1', Type: 'INTEGRATION_FLOW', ConditionAttribute: 'Name', ConditionValue: 'Flow1', ConditionType: 'exactString' }
     *   ]
     * });
     */
    createAccessPolicy(policyData: ComSapHciApiAccessPolicyCreate): Promise<void>;
    /**
     * Deletes an Access Policy by its ID.
     *
     * @param {string} policyId The ID of the policy to delete.
     * @returns {Promise<void>} Promise resolving when the policy is deleted.
     *
     * @example
     * await client.deleteAccessPolicy('policy-id-123');
     */
    deleteAccessPolicy(policyId: string): Promise<void>;
    /**
     * Updates an Access Policy (only PATCH is supported by the API).
     * Note: This method currently only triggers the PATCH request without specific update data,
     * as the generated client doesn't directly support PATCH bodies.
     * A custom request might be needed for actual updates.
     *
     * @param {string} policyId The ID of the policy to update.
     * @returns {Promise<void>}
     *
     * @example
     * // Note: Actual update might require custom implementation
     * await client.updateAccessPolicy('policy-id-123');
     */
    updateAccessPolicy(policyId: string): Promise<void>;
    /**
     * Retrieves all Artifact References.
     *
     * @param {object} [options] Optional parameters for filtering, pagination, sorting, and selection.
     * @param {number} [options.top] Maximum number of references to retrieve.
     * @param {number} [options.skip] Number of references to skip.
     * @param {string} [options.filter] OData filter string (e.g., "Id eq 'ref1'").
     * @param {('Id' | 'Id desc' | 'Name' | 'Name desc')[]} [options.orderby] Sorting order.
     * @param {('Id' | 'Name' | 'Description' | 'Type' | 'ConditionAttribute' | 'ConditionValue' | 'ConditionType')[]} [options.select] Properties to select.
     * @param {boolean} [options.inlinecount=false] If true, includes the total count.
     * @returns {Promise<{ references: ComSapHciApiArtifactReference[], count?: number }>} Promise resolving to the references and optional count.
     *
     * @example
     * const { references } = await client.getArtifactReferences();
     */
    getArtifactReferences(options?: {
        top?: number;
        skip?: number;
        filter?: string;
        orderby?: ('Id' | 'Id desc' | 'Name' | 'Name desc')[];
        select?: ('Id' | 'Name' | 'Description' | 'Type' | 'ConditionAttribute' | 'ConditionValue' | 'ConditionType')[];
        inlinecount?: boolean;
    }): Promise<{
        references: ComSapHciApiArtifactReference[];
        count?: number;
    }>;
    /**
     * Adds a new Artifact Reference to an existing Access Policy.
     *
     * @param {string} policyId The ID of the Access Policy to add the reference to.
     * @param {Omit<ComSapHciApiArtifactReferenceCreatesep, 'AcessPolicy'>} referenceData Data for the new artifact reference.
     * @returns {Promise<void>} Promise resolving when the reference is created.
     *
     * @example
     * await client.createArtifactReference('policy-id-123', {
     *   Name: 'AllowFlow2', Type: 'INTEGRATION_FLOW', ConditionAttribute: 'Name', ConditionValue: 'Flow2', ConditionType: 'exactString'
     * });
     */
    createArtifactReference(policyId: string, referenceData: Omit<ComSapHciApiArtifactReferenceCreatesep, 'AcessPolicy'>): Promise<void>;
    /**
     * Deletes an Artifact Reference by its ID.
     *
     * @param {string} referenceId The ID of the artifact reference to delete.
     * @returns {Promise<void>} Promise resolving when the reference is deleted.
     *
     * @example
     * await client.deleteArtifactReference('ref-id-456');
     */
    deleteArtifactReference(referenceId: string): Promise<void>;
    /**
     * Retrieves entries from a specified keystore.
     *
     * @param {('system' | 'backup_admin_system' | 'KeyRenewal')} keystoreName Name of the keystore.
     * @param {('Alias' | 'Hexalias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Status' | 'Type' | 'Validity')[]} [select] Properties to select.
     * @returns {Promise<ComSapHciApiKeystoreEntry[]>} Promise resolving to a list of keystore entries.
     *
     * @example
     * const entries = await client.getKeystoreEntries('system');
     */
    getKeystoreEntries(keystoreName: 'system' | 'backup_admin_system' | 'KeyRenewal', select?: ('Alias' | 'Hexalias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Status' | 'Type' | 'Validity')[]): Promise<ComSapHciApiKeystoreEntry[]>;
    /**
     * Retrieves a specific keystore entry by its hex-encoded alias.
     *
     * @param {string} hexAlias Hex-encoded alias of the entry.
     * @param {('system' | 'backup_admin_system' | 'KeyRenewal')} [keystoreName='system'] The name of the keystore.
     * @param {('Alias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Status' | 'Type' | 'Validity')[]} [select] Properties to select.
     * @returns {Promise<ComSapHciApiKeystoreEntry | undefined>} Promise resolving to the entry or undefined.
     *
     * @example
     * const entry = await client.getKeystoreEntry('hex...');
     */
    getKeystoreEntry(hexAlias: string, keystoreName?: 'system' | 'backup_admin_system' | 'KeyRenewal', select?: ('Alias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Status' | 'Type' | 'Validity')[]): Promise<ComSapHciApiKeystoreEntry | undefined>;
    /**
     * Generates a new key pair (RSA or ECC).
     *
     * @param {ComSapHciApiKeyPairGenerationRequestCreate} keyPairData Details for key pair generation.
     * @param {boolean} [returnKeystoreEntries=false] Return updated keystore entries in response.
     * @returns {Promise<{ keyPairInfo?: any, entries?: ComSapHciApiKeystoreEntry[] }>} Promise with generated key pair info and optionally the entry list.
     *
     * @example
     * const { keyPairInfo } = await client.generateKeyPair({
     *   Alias: 'myNewKeyPair',
     *   KeyType: 'RSA',
     *   KeySize: 2048,
     *   SignatureAlgorithm: 'SHA256/RSA',
     *   CommonName: 'My Common Name'
     *   // ... other DN components
     * });
     */
    generateKeyPair(keyPairData: ComSapHciApiKeyPairGenerationRequestCreate, returnKeystoreEntries?: boolean): Promise<{
        keyPairInfo?: any;
        entries?: ComSapHciApiKeystoreEntry[];
    }>;
    /**
     * Generates an RSA key pair from an existing private key file (PKCS#1 PEM format).
     *
     * @param {ComSapHciApiRSAKeyGenerationRequestCreate} rsaData Details including Alias, RSAFile (base64 encoded private key), SignatureAlgorithm, and DN components.
     * @param {boolean} [returnKeystoreEntries=false] Return updated keystore entries in response.
     * @returns {Promise<{ keyPairInfo?: any, entries?: ComSapHciApiKeystoreEntry[] }>} Promise with generated key pair info and optionally the entry list.
     *
     * @example
     * const { keyPairInfo } = await client.generateRsaKeyPair({
     *   Alias: 'myImportedRsaKey',
     *   RSAFile: 'base64PrivateKeyContent',
     *   SignatureAlgorithm: 'SHA256/RSA',
     *   CommonName: 'Imported Key'
     * });
     */
    generateRsaKeyPair(rsaData: ComSapHciApiRSAKeyGenerationRequestCreate, returnKeystoreEntries?: boolean): Promise<{
        keyPairInfo?: any;
        entries?: ComSapHciApiKeystoreEntry[];
    }>;
    /**
     * Generates an SSH private key pair from an OpenSSH (RSA, DSA, EC) or PuTTY (RSA, DSA) file.
     * Alias will be id_rsa, id_dsa, or id_ec based on algorithm.
     *
     * @param {ComSapHciApiSSHKeyGenerationRequestCreate} sshData Details including SSHFile (key content), optional Password, and DN components.
     * @param {boolean} [update=false] Update existing SSH key pair.
     * @param {boolean} [returnKeystoreEntries=false] Return updated keystore entries in response.
     * @returns {Promise<{ responseInfo?: ComSapHciApiSSHKeyGenerationRequestCreateResponse, entries?: ComSapHciApiKeystoreEntry[] }>} Promise with response info (containing Alias) and optionally the entry list.
     *
     * @example
     * const { responseInfo } = await client.generateSshKeyPair({
     *   SSHFile: 'ssh-rsa AAAAB3NzaC1yc2.... user@host',
     *   CommonName: 'My SSH Key'
     * }, false);
     * console.log('Generated SSH Key Alias:', responseInfo?.Alias);
     */
    generateSshKeyPair(sshData: ComSapHciApiSSHKeyGenerationRequestCreate, update?: boolean, returnKeystoreEntries?: boolean): Promise<{
        responseInfo?: ComSapHciApiSSHKeyGenerationRequestCreateResponse;
        entries?: ComSapHciApiKeystoreEntry[];
    }>;
    /**
     * Retrieves a certificate chain.
     *
     * @param {string} hexAlias Hex-encoded alias of the key pair.
     * @param {('system' | 'backup_admin_system' | 'KeyRenewal' | 'KeyHistory')} [keystoreName='system'] Keystore name.
     * @param {('Alias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Validity')[]} [select] Properties to select.
     * @returns {Promise<ComSapHciApiChainCertificate[]>} Promise resolving to the list of chain certificates.
     *
     * @example
     * const chainCertificates = await client.getCertificateChain('hex...');
     */
    getCertificateChain(hexAlias: string, keystoreName?: 'system' | 'backup_admin_system' | 'KeyRenewal' | 'KeyHistory', select?: ('Alias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Validity')[]): Promise<ComSapHciApiChainCertificate[]>;
    /**
     * Retrieves all keystore entries (with Caching)
     * Implements Stale-While-Revalidate Pattern
     *
     * @param {('system' | 'backup_admin_system' | 'KeyRenewal')} keystoreName Name of the keystore.
     * @param {boolean} [forceRefresh=false] Forces fetching fresh data from SAP.
     * @param {('Alias' | 'Hexalias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Status' | 'Type' | 'Validity')[]} [select] Properties to select.
     * @returns {Promise<{ data: ComSapHciApiKeystoreEntry[]; cacheInfo: CacheInfo }>} Keystore entries with cache information.
     *
     * @example
     * const { data, cacheInfo } = await client.getKeystoreEntriesWithCache('system');
     * console.log(cacheInfo.status); // 'HIT', 'HIT-STALE', 'MISS', or 'DISABLED'
     */
    getKeystoreEntriesWithCache(keystoreName: 'system' | 'backup_admin_system' | 'KeyRenewal', forceRefresh?: boolean, select?: ('Alias' | 'Hexalias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Status' | 'Type' | 'Validity')[]): Promise<{
        data: ComSapHciApiKeystoreEntry[];
        cacheInfo: CacheInfo;
    }>;
    /**
     * Retrieves all deployed user credentials (with Caching)
     * Implements Stale-While-Revalidate Pattern
     *
     * @param {boolean} [forceRefresh=false] Forces fetching fresh data from SAP.
     * @returns {Promise<{ data: ComSapHciApiUserCredential[]; cacheInfo: CacheInfo }>} User credentials with cache information.
     *
     * @example
     * const { data, cacheInfo } = await client.getUserCredentialsWithCache();
     * console.log(cacheInfo.status); // 'HIT', 'HIT-STALE', 'MISS', or 'DISABLED'
     */
    getUserCredentialsWithCache(forceRefresh?: boolean): Promise<{
        data: ComSapHciApiUserCredential[];
        cacheInfo: CacheInfo;
    }>;
    /**
     * Retrieves all OAuth2 client credentials (with Caching)
     * Implements Stale-While-Revalidate Pattern
     *
     * @param {boolean} [expandCustomParameters=false] If true, expands custom parameters.
     * @param {boolean} [forceRefresh=false] Forces fetching fresh data from SAP.
     * @returns {Promise<{ data: ComSapHciApiOAuth2ClientCredential[]; cacheInfo: CacheInfo }>} OAuth2 credentials with cache information.
     *
     * @example
     * const { data, cacheInfo } = await client.getOAuth2ClientCredentialsWithCache();
     * console.log(cacheInfo.status); // 'HIT', 'HIT-STALE', 'MISS', or 'DISABLED'
     */
    getOAuth2ClientCredentialsWithCache(expandCustomParameters?: boolean, forceRefresh?: boolean): Promise<{
        data: ComSapHciApiOAuth2ClientCredential[];
        cacheInfo: CacheInfo;
    }>;
    /**
     * Retrieves all Access Policies (with Caching)
     * Implements Stale-While-Revalidate Pattern
     *
     * @param {object} [options] Optional parameters for filtering, pagination, sorting, selection, and expansion.
     * @param {boolean} [forceRefresh=false] Forces fetching fresh data from SAP.
     * @returns {Promise<{ data: { policies: ComSapHciApiAccessPolicy[], count?: number }; cacheInfo: CacheInfo }>} Access policies with cache information.
     *
     * @example
     * const { data, cacheInfo } = await client.getAccessPoliciesWithCache({ expandArtifactReferences: true });
     * console.log(data.policies);
     * console.log(cacheInfo.status); // 'HIT', 'HIT-STALE', 'MISS', or 'DISABLED'
     */
    getAccessPoliciesWithCache(options?: {
        top?: number;
        skip?: number;
        filter?: string;
        orderby?: ('Id' | 'Id desc' | 'RoleName' | 'RoleName desc')[];
        select?: ('Id' | 'RoleName' | 'Description')[];
        expandArtifactReferences?: boolean;
        inlinecount?: boolean;
    }, forceRefresh?: boolean): Promise<{
        data: {
            policies: ComSapHciApiAccessPolicy[];
            count?: number;
        };
        cacheInfo: CacheInfo;
    }>;
    /**
     * Retrieves a certificate chain (with Caching)
     * Implements Stale-While-Revalidate Pattern
     *
     * @param {string} hexAlias Hex-encoded alias of the key pair.
     * @param {('system' | 'backup_admin_system' | 'KeyRenewal' | 'KeyHistory')} [keystoreName='system'] Keystore name.
     * @param {boolean} [forceRefresh=false] Forces fetching fresh data from SAP.
     * @param {('Alias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Validity')[]} [select] Properties to select.
     * @returns {Promise<{ data: ComSapHciApiChainCertificate[]; cacheInfo: CacheInfo }>} Certificate chain with cache information.
     *
     * @example
     * const { data, cacheInfo } = await client.getCertificateChainWithCache('hex...');
     * console.log(cacheInfo.status); // 'HIT', 'HIT-STALE', 'MISS', or 'DISABLED'
     */
    getCertificateChainWithCache(hexAlias: string, keystoreName?: 'system' | 'backup_admin_system' | 'KeyRenewal' | 'KeyHistory', forceRefresh?: boolean, select?: ('Alias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Validity')[]): Promise<{
        data: ComSapHciApiChainCertificate[];
        cacheInfo: CacheInfo;
    }>;
    /**
     * Retrieves entries from the history keystore (with Caching)
     * Implements Stale-While-Revalidate Pattern
     *
     * @param {boolean} [forceRefresh=false] Forces fetching fresh data from SAP.
     * @param {('Alias' | 'Hexalias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Validity')[]} [select] Properties to select.
     * @returns {Promise<{ data: ComSapHciApiHistoryKeystoreEntry[]; cacheInfo: CacheInfo }>} History entries with cache information.
     *
     * @example
     * const { data, cacheInfo } = await client.getKeystoreHistoryEntriesWithCache();
     * console.log(cacheInfo.status); // 'HIT', 'HIT-STALE', 'MISS', or 'DISABLED'
     */
    getKeystoreHistoryEntriesWithCache(forceRefresh?: boolean, select?: ('Alias' | 'Hexalias' | 'KeyType' | 'LastModifiedBy' | 'LastModifiedTime' | 'Owner' | 'Validity')[]): Promise<{
        data: ComSapHciApiHistoryKeystoreEntry[];
        cacheInfo: CacheInfo;
    }>;
}
