/**
 * SAP Partner Directory Client
 *
 * This file contains a client class for interacting with the
 * Partner Directory API of SAP Cloud Integration. This API allows management
 * of partner information, parameters, and authorized users in B2B scenarios.
 *
 * @module sap-integration-suite-client/partner-directory
 */
import { Api as PartnerDirectoryApi, ComSapHciApiAlternativePartner, ComSapHciApiAlternativePartnerCreate, ComSapHciApiAlternativePartnerUpdate, ComSapHciApiAuthorizedUser, ComSapHciApiAuthorizedUserCreate, ComSapHciApiAuthorizedUserUpdate, ComSapHciApiBinaryParameter, ComSapHciApiBinaryParameterCreate, ComSapHciApiBinaryParameterUpdate, ComSapHciApiPartner, ComSapHciApiStringParameter, ComSapHciApiStringParameterCreate, ComSapHciApiStringParameterUpdate, ComSapHciApiUserCredentialParameter, ComSapHciApiUserCredentialParameterCreate } from '../types/sap.PartnerDirectory';
/**
 * SAP Partner Directory Client
 *
 * Provides simplified access to the Partner Directory API.
 */
export declare class PartnerDirectoryClient {
    private api;
    private normalizer;
    /**
     * Creates a new PartnerDirectoryClient
     *
     * @param {PartnerDirectoryApi<unknown>} api - The underlying API instance
     */
    constructor(api: PartnerDirectoryApi<unknown>);
    /**
     * Retrieves all alternative partners.
     *
     * @param {Object} options Optional parameters for the request
     * @param {number} [options.top] Maximum number of entries to return
     * @param {number} [options.skip] Number of entries to skip
     * @param {string} [options.filter] OData filter expression
     * @returns {Promise<ComSapHciApiAlternativePartner[]>} Promise resolving to a list of alternative partners
     *
     * @example
     * const altPartners = await client.getAlternativePartners({ top: 100 });
     */
    getAlternativePartners(options?: {
        top?: number;
        skip?: number;
        filter?: string;
    }): Promise<ComSapHciApiAlternativePartner[]>;
    /**
     * Retrieves a specific alternative partner by its composite key.
     *
     * @param {string} hexagency The hexadecimal agency value
     * @param {string} hexscheme The hexadecimal scheme value
     * @param {string} hexid The hexadecimal ID value
     * @returns {Promise<ComSapHciApiAlternativePartner | undefined>} Promise resolving to the alternative partner
     *
     * @example
     * const altPartner = await client.getAlternativePartnerById('agency', 'scheme', 'id');
     */
    getAlternativePartnerById(hexagency: string, hexscheme: string, hexid: string): Promise<ComSapHciApiAlternativePartner | undefined>;
    /**
     * Creates a new alternative partner.
     *
     * @param {ComSapHciApiAlternativePartnerCreate} partnerData The alternative partner data to create
     * @returns {Promise<ComSapHciApiAlternativePartner>} Promise resolving to the created alternative partner
     *
     * @example
     * const newPartner = await client.createAlternativePartner({
     *   Agency: 'MyAgency',
     *   Scheme: 'MyScheme',
     *   Id: 'MyId',
     *   Pid: 'PartnerId'
     * });
     */
    createAlternativePartner(partnerData: ComSapHciApiAlternativePartnerCreate): Promise<ComSapHciApiAlternativePartner>;
    /**
     * Updates an existing alternative partner.
     *
     * @param {string} hexagency The hexadecimal agency value
     * @param {string} hexscheme The hexadecimal scheme value
     * @param {string} hexid The hexadecimal ID value
     * @param {ComSapHciApiAlternativePartnerUpdate} partnerData The alternative partner data to update
     * @returns {Promise<void>} Promise resolving when the update is complete
     *
     * @example
     * await client.updateAlternativePartner('agency', 'scheme', 'id', {
     *   Pid: 'NewPartnerId'
     * });
     */
    updateAlternativePartner(hexagency: string, hexscheme: string, hexid: string, partnerData: ComSapHciApiAlternativePartnerUpdate): Promise<void>;
    /**
     * Deletes an alternative partner.
     *
     * @param {string} hexagency The hexadecimal agency value
     * @param {string} hexscheme The hexadecimal scheme value
     * @param {string} hexid The hexadecimal ID value
     * @returns {Promise<void>} Promise resolving when the deletion is complete
     *
     * @example
     * await client.deleteAlternativePartner('agency', 'scheme', 'id');
     */
    deleteAlternativePartner(hexagency: string, hexscheme: string, hexid: string): Promise<void>;
    /**
     * Retrieves all authorized users.
     *
     * @param {Object} options Optional parameters for the request
     * @param {number} [options.top] Maximum number of entries to return
     * @param {number} [options.skip] Number of entries to skip
     * @param {string} [options.filter] OData filter expression
     * @returns {Promise<ComSapHciApiAuthorizedUser[]>} Promise resolving to a list of authorized users
     *
     * @example
     * const users = await client.getAuthorizedUsers();
     */
    getAuthorizedUsers(options?: {
        top?: number;
        skip?: number;
        filter?: string;
    }): Promise<ComSapHciApiAuthorizedUser[]>;
    /**
     * Retrieves a specific authorized user by username.
     *
     * @param {string} user The username
     * @returns {Promise<ComSapHciApiAuthorizedUser | undefined>} Promise resolving to the authorized user
     *
     * @example
     * const user = await client.getAuthorizedUserById('username');
     */
    getAuthorizedUserById(user: string): Promise<ComSapHciApiAuthorizedUser | undefined>;
    /**
     * Creates a new authorized user.
     *
     * @param {ComSapHciApiAuthorizedUserCreate} userData The authorized user data to create
     * @returns {Promise<ComSapHciApiAuthorizedUser>} Promise resolving to the created authorized user
     *
     * @example
     * const newUser = await client.createAuthorizedUser({
     *   User: 'username',
     *   Type: 'User'
     * });
     */
    createAuthorizedUser(userData: ComSapHciApiAuthorizedUserCreate): Promise<ComSapHciApiAuthorizedUser>;
    /**
     * Updates an existing authorized user.
     *
     * @param {string} user The username
     * @param {ComSapHciApiAuthorizedUserUpdate} userData The authorized user data to update
     * @returns {Promise<void>} Promise resolving when the update is complete
     *
     * @example
     * await client.updateAuthorizedUser('username', {
     *   Type: 'Administrator'
     * });
     */
    updateAuthorizedUser(user: string, userData: ComSapHciApiAuthorizedUserUpdate): Promise<void>;
    /**
     * Deletes an authorized user.
     *
     * @param {string} user The username
     * @returns {Promise<void>} Promise resolving when the deletion is complete
     *
     * @example
     * await client.deleteAuthorizedUser('username');
     */
    deleteAuthorizedUser(user: string): Promise<void>;
    /**
     * Retrieves all partners.
     *
     * @returns {Promise<ComSapHciApiPartner[]>} Promise resolving to a list of partners
     *
     * @example
     * const partners = await client.getPartners();
     */
    getPartners(): Promise<ComSapHciApiPartner[]>;
    /**
     * Retrieves a specific partner by ID by filtering all partners.
     *
     * @param {string} pid The partner ID
     * @returns {Promise<ComSapHciApiPartner | undefined>} Promise resolving to the partner
     *
     * @example
     * const partner = await client.getPartnerById('partner-id');
     */
    getPartnerById(pid: string): Promise<ComSapHciApiPartner | undefined>;
    /**
     * Deletes a partner.
     *
     * @param {string} pid The partner ID
     * @returns {Promise<void>} Promise resolving when the deletion is complete
     *
     * @example
     * await client.deletePartner('partner-id');
     */
    deletePartner(pid: string): Promise<void>;
    /**
     * Retrieves all string parameters.
     *
     * @param {Object} options Optional parameters for the request
     * @param {number} [options.top] Maximum number of entries to return
     * @param {number} [options.skip] Number of entries to skip
     * @param {string} [options.filter] OData filter expression
     * @returns {Promise<ComSapHciApiStringParameter[]>} Promise resolving to a list of string parameters
     *
     * @example
     * const params = await client.getStringParameters({ filter: "Pid eq 'partner-id'" });
     */
    getStringParameters(options?: {
        top?: number;
        skip?: number;
        filter?: string;
    }): Promise<ComSapHciApiStringParameter[]>;
    /**
     * Retrieves a specific string parameter.
     *
     * @param {string} pid The partner ID
     * @param {string} id The parameter ID
     * @returns {Promise<ComSapHciApiStringParameter | undefined>} Promise resolving to the string parameter
     *
     * @example
     * const param = await client.getStringParameterById('partner-id', 'param-id');
     */
    getStringParameterById(pid: string, id: string): Promise<ComSapHciApiStringParameter | undefined>;
    /**
     * Creates a new string parameter.
     *
     * @param {ComSapHciApiStringParameterCreate} paramData The string parameter data to create
     * @returns {Promise<ComSapHciApiStringParameter>} Promise resolving to the created string parameter
     *
     * @example
     * const newParam = await client.createStringParameter({
     *   Pid: 'partner-id',
     *   Id: 'param-id',
     *   Value: 'param-value'
     * });
     */
    createStringParameter(paramData: ComSapHciApiStringParameterCreate): Promise<ComSapHciApiStringParameter>;
    /**
     * Updates an existing string parameter.
     *
     * @param {string} pid The partner ID
     * @param {string} id The parameter ID
     * @param {ComSapHciApiStringParameterUpdate} paramData The string parameter data to update
     * @returns {Promise<void>} Promise resolving when the update is complete
     *
     * @example
     * await client.updateStringParameter('partner-id', 'param-id', {
     *   Value: 'new-value'
     * });
     */
    updateStringParameter(pid: string, id: string, paramData: ComSapHciApiStringParameterUpdate): Promise<void>;
    /**
     * Deletes a string parameter.
     *
     * @param {string} pid The partner ID
     * @param {string} id The parameter ID
     * @returns {Promise<void>} Promise resolving when the deletion is complete
     *
     * @example
     * await client.deleteStringParameter('partner-id', 'param-id');
     */
    deleteStringParameter(pid: string, id: string): Promise<void>;
    /**
     * Retrieves all binary parameters.
     *
     * @param {Object} options Optional parameters for the request
     * @param {number} [options.top] Maximum number of entries to return
     * @param {number} [options.skip] Number of entries to skip
     * @param {string} [options.filter] OData filter expression
     * @returns {Promise<ComSapHciApiBinaryParameter[]>} Promise resolving to a list of binary parameters
     *
     * @example
     * const params = await client.getBinaryParameters({ filter: "Pid eq 'partner-id'" });
     */
    getBinaryParameters(options?: {
        top?: number;
        skip?: number;
        filter?: string;
    }): Promise<ComSapHciApiBinaryParameter[]>;
    /**
     * Retrieves a specific binary parameter.
     *
     * @param {string} pid The partner ID
     * @param {string} id The parameter ID
     * @returns {Promise<ComSapHciApiBinaryParameter | undefined>} Promise resolving to the binary parameter
     *
     * @example
     * const param = await client.getBinaryParameterById('partner-id', 'param-id');
     */
    getBinaryParameterById(pid: string, id: string): Promise<ComSapHciApiBinaryParameter | undefined>;
    /**
     * Creates a new binary parameter.
     *
     * @param {ComSapHciApiBinaryParameterCreate} paramData The binary parameter data to create
     * @returns {Promise<ComSapHciApiBinaryParameter>} Promise resolving to the created binary parameter
     *
     * @example
     * const newParam = await client.createBinaryParameter({
     *   Pid: 'partner-id',
     *   Id: 'param-id',
     *   ContentType: 'application/octet-stream',
     *   Value: 'base64-encoded-content'
     * });
     */
    createBinaryParameter(paramData: ComSapHciApiBinaryParameterCreate): Promise<ComSapHciApiBinaryParameter>;
    /**
     * Updates an existing binary parameter.
     *
     * @param {string} pid The partner ID
     * @param {string} id The parameter ID
     * @param {ComSapHciApiBinaryParameterUpdate} paramData The binary parameter data to update
     * @returns {Promise<void>} Promise resolving when the update is complete
     *
     * @example
     * await client.updateBinaryParameter('partner-id', 'param-id', {
     *   Value: 'new-base64-encoded-content'
     * });
     */
    updateBinaryParameter(pid: string, id: string, paramData: ComSapHciApiBinaryParameterUpdate): Promise<void>;
    /**
     * Deletes a binary parameter.
     *
     * @param {string} pid The partner ID
     * @param {string} id The parameter ID
     * @returns {Promise<void>} Promise resolving when the deletion is complete
     *
     * @example
     * await client.deleteBinaryParameter('partner-id', 'param-id');
     */
    deleteBinaryParameter(pid: string, id: string): Promise<void>;
    /**
     * Retrieves all user credential parameters.
     *
     * @param {string} filter OData filter expression (required, e.g., "Pid eq 'partner-id'")
     * @returns {Promise<ComSapHciApiUserCredentialParameter[]>} Promise resolving to a list of user credential parameters
     *
     * @example
     * const params = await client.getUserCredentialParameters("Pid eq 'partner-id'");
     */
    getUserCredentialParameters(filter: string): Promise<ComSapHciApiUserCredentialParameter[]>;
    /**
     * Retrieves a specific user credential parameter.
     *
     * @param {string} pid The partner ID
     * @param {string} id The parameter ID
     * @returns {Promise<ComSapHciApiUserCredentialParameter | undefined>} Promise resolving to the user credential parameter
     *
     * @example
     * const param = await client.getUserCredentialParameterById('partner-id', 'param-id');
     */
    getUserCredentialParameterById(pid: string, id: string): Promise<ComSapHciApiUserCredentialParameter | undefined>;
    /**
     * Creates a new user credential parameter.
     *
     * @param {ComSapHciApiUserCredentialParameterCreate} paramData The user credential parameter data to create
     * @returns {Promise<ComSapHciApiUserCredentialParameter>} Promise resolving to the created user credential parameter
     *
     * @example
     * const newParam = await client.createUserCredentialParameter({
     *   Pid: 'partner-id',
     *   Id: 'param-id',
     *   User: 'username',
     *   Password: 'password'
     * });
     */
    createUserCredentialParameter(paramData: ComSapHciApiUserCredentialParameterCreate): Promise<ComSapHciApiUserCredentialParameter>;
    /**
     * Deletes a user credential parameter.
     *
     * @param {string} pid The partner ID
     * @param {string} id The parameter ID
     * @returns {Promise<void>} Promise resolving when the deletion is complete
     *
     * @example
     * await client.deleteUserCredentialParameter('partner-id', 'param-id');
     */
    deleteUserCredentialParameter(pid: string, id: string): Promise<void>;
    /**
     * Returns the underlying API instance for advanced usage.
     *
     * @returns {PartnerDirectoryApi<unknown>} The underlying API instance
     */
    getApi(): PartnerDirectoryApi<unknown>;
}
