import { ActivateCustomerUserParameters, AddCustomerUserToAccountsParameters, CreateCustomerUserParameters, CreateCustomerUserResponse, GetAuthenticatedUserResponse, GetCustomerUserAddressesParameters, GetCustomerUserOrganisationsResponse, RemoveAccountsFromCustomerUserParameters, SendCustomerUserActivationRequestParameters, UpdateCustomerUserParameters, UpdateCustomerUserResponse, UpdateSpecificCustomerUserParameters } from "./definitions";
/**
 * 🚚 **Retrieve Authenticated User**
 *
 * **APICODE(USER-500)**
 * Retrieves the authenticated user.
 *
 * This function sends a request to obtain the details of the currently authenticated user.
 *
 * 🛠 **Endpoint**: `GET /v1/authenticated-user`
 *
 * | Parameter | Type   | Required | Description               |
 * |-----------|--------|----------|---------------------------|
 * | N/A       | N/A    | N/A      | This function does not require any parameters. |
 *
 * 📤 **Returns**:
 * A `Promise` resolving to an object containing the authenticated user's data.
 *
 * 🛠 **Example usage**:
 * ```ts
 * const user = await getAuthenticatedUser();
 * ```
 * #### Output
 * ```json
 * {
 *   "id": "user1",
 *   "name": "John Doe"
 * }
 * ```
 */
export declare function getAuthenticatedUser(): Promise<GetAuthenticatedUserResponse>;
/**
 * 🚚 **Create Customer User**
 *
 * **APICODE(USER-100)**
 * Creates a customer user.
 *
 * This function sends a request to create a new customer user with the specified parameters.
 *
 * 🛠 **Endpoint**: `POST /v1/shop/customer-users`
 *
 * | Parameter          | Type   | Required | Description                                      |
 * |--------------------|--------|----------|--------------------------------------------------|
 * | `email`            | string | ✅        | The email address of the user.                   |
 * | `password`         | string | ✅        | The password of the user.                        |
 * | `firstName`        | string | ✅        | The first name of the user.                      |
 * | `lastName`         | string | ✅        | The last name of the user.                       |
 * | `groups`           | string[] | ✅      | The groups to which the user belongs.            |
 * | `activationUrl`    | string | ❌        | The URL for user activation.                     |
 * | `civility`         | string | ❌        | The civility of the user (e.g., Mr., Ms.).       |
 * | `customFieldValues`| object | ❌        | Custom fields for additional user information.   |
 * | `externalId`       | string | ❌        | An external identifier for the user.             |
 * | `status`           | string | ❌        | The status of the user (e.g., active, inactive). |
 * | `mainOrganisationId`| string | ❌      | The ID of the main organization associated with the user. |
 * | `organisations`    | string[] | ❌      | The list of organizations associated with the user. |
 * | `phone`            | string | ❌        | The phone number of the user.                    |
 *
 * 📤 **Returns**:
 * A `Promise` resolving to an object containing the created user's data.
 *
 * 🛠 **Example usage**:
 * ```ts
 * const newUser = await createCustomerUser({
 *   email: 'user@example.com',
 *   password: 'securePassword',
 *   firstName: 'John',
 *   lastName: 'Doe',
 *   activationUrl: 'http://example.com/activate',
 *   civility: 'Mr.',
 *   customFieldValues: {},
 *   externalId: 'external123',
 *   groups: ['group1'],
 *   status: 'active',
 *   mainOrganisationId: 'org1',
 *   organisations: ['org1', 'org2'],
 *   phone: '123-456-7890'
 * });
 * ```
 * #### Output
 * ```json
 * {
 *   "id": "user1",
 *   "detail": "User created successfully"
 * }
 * ```
 */
export declare function createCustomerUser(params: CreateCustomerUserParameters): Promise<CreateCustomerUserResponse>;
/**
 * 🚚 **Update Customer User**
 *
 * **APICODE(USER-201)**
 * Updates your customer user.
 *
 * This function sends a request to update the details of the current customer user.
 *
 * 🛠 **Endpoint**: `PUT /v1/shop/customer-users`
 *
 * | Parameter          | Type   | Required | Description                                      |
 * |--------------------|--------|----------|--------------------------------------------------|
 * | `firstName`        | string | ✅        | The first name of the user.                      |
 * | `lastName`         | string | ✅        | The last name of the user.                       |
 * | `civility`         | string | ❌        | The civility of the user (e.g., Mr., Ms.).       |
 * | `phone`            | string | ❌        | The phone number of the user.                    |
 * | `customFieldValues`| object | ❌        | Custom fields for additional user information.   |
 *
 * 📤 **Returns**:
 * A `Promise` resolving to an object containing the updated user's data.
 *
 * 🛠 **Example usage**:
 * ```ts
 * const updatedUser = await updateCustomerUser({
 *   firstName: 'John',
 *   lastName: 'Doe',
 *   civility: 'Mr.',
 *   phone: '123-456-7890',
 *   customFieldValues: {}
 * });
 * ```
 * #### Output
 * ```json
 * {
 *   "detail": "User updated successfully"
 * }
 * ```
 */
export declare function updateCustomerUser({ civility, firstName, lastName, phone, customFieldValues, }: UpdateCustomerUserParameters): Promise<UpdateCustomerUserResponse>;
/**
 * 🚚 **Activate Customer User**
 *
 * **APICODE(USER-200)**
 * Activates a customer user.
 *
 * This function sends a request to activate a customer user with a specified token.
 *
 * 🛠 **Endpoint**: `POST /v1/shop/customer-users/activate`
 *
 * | Parameter | Type   | Required | Description                                      |
 * |-----------|--------|----------|--------------------------------------------------|
 * | `token`   | string | ✅        | The activation token of the user.                |
 *
 * 📤 **Returns**:
 * A `Promise` resolving when the user is activated.
 *
 * 🛠 **Example usage**:
 * ```ts
 * await activateCustomerUser({ token: 'activationToken' });
 * ```
 * #### Output
 * ```json
 * {
 *   "detail": "User activated successfully"
 * }
 * ```
 */
export declare function activateCustomerUser(params: ActivateCustomerUserParameters): Promise<void>;
/**
 * 🚚 **Retrieve Customer User Addresses**
 *
 * **APICODE(USER-501)**
 * Retrieves customer user addresses.
 *
 * This function sends a request to obtain the addresses associated with a customer user.
 *
 * 🛠 **Endpoint**: `GET /v1/shop/customer-users/addresses`
 *
 * | Parameter        | Type    | Required | Description                                   |
 * |------------------|---------|----------|-----------------------------------------------|
 * | `shipping`       | boolean | ✅        | Indicates whether to retrieve shipping addresses. |
 * | `billing`        | boolean | ✅        | Indicates whether to retrieve billing addresses. |
 * | `account`        | string  | ✅        | The ID of the account for which to retrieve addresses. |
 * | `organisationIds`| string[]| ❌        | An array of organization IDs to filter the addresses. |
 *
 * 📤 **Returns**:
 * A `Promise` resolving to the list of addresses associated with the customer user.
 *
 * 🛠 **Example usage**:
 * ```ts
 * const addresses = await getCustomerUserAddresses({
 *   shipping: true,
 *   billing: false,
 *   account: 'account1',
 *   organisationIds: ['org1', 'org2']
 * });
 * ```
 * #### Output
 * ```json
 * {
 *   "addresses": [
 *     {
 *       "id": "address1",
 *       "detail": "Address retrieved successfully"
 *     }
 *   ]
 * }
 * ```
 */
export declare function getCustomerUserAddresses({ shipping, billing, account, organisationIds, }: GetCustomerUserAddressesParameters): Promise<void>;
/**
 * 🚚 **Retrieve Customer User Organisations**
 *
 * **APICODE(USER-502)**
 * Retrieves customer user organisations.
 *
 * This function sends a request to obtain the organisations associated with a customer user.
 *
 * 🛠 **Endpoint**: `GET /v1/shop/customer-users/organisations`
 *
 * 📤 **Returns**:
 * A `Promise` resolving to the list of organisations associated with the customer user.
 *
 * 🛠 **Example usage**:
 * ```ts
 * const organisations = await getCustomerUserOrganisations();
 * ```
 * #### Output
 * ```json
 * {
 *   "organisations": [
 *     {
 *       "id": "org1",
 *       "name": "Organisation 1"
 *     },
 *     {
 *       "id": "org2",
 *       "name": "Organisation 2"
 *     }
 *   ]
 * }
 * ```
 */
export declare function getCustomerUserOrganisations(): Promise<GetCustomerUserOrganisationsResponse>;
/**
 * 🚚 **Send Customer User Activation Request**
 *
 * **APICODE(USER-203)**
 * Sends a customer user activation request.
 *
 * This function sends a request to resend an activation request to a customer user.
 *
 * 🛠 **Endpoint**: `POST /v1/shop/customer-users/resend-activation-request`
 *
 * | Parameter   | Type   | Required | Description                                      |
 * |-------------|--------|----------|--------------------------------------------------|
 * | `token`     | string | ✅        | The activation token of the user.                |
 * | `redirectUrl`| string | ❌       | The URL to redirect the user after activation.   |
 *
 * 📤 **Returns**:
 * A `Promise` resolving when the request is sent.
 *
 * 🛠 **Example usage**:
 * ```ts
 * await sendCustomerUserActivationRequest({
 *   token: 'activationToken',
 *   redirectUrl: 'http://example.com/redirect'
 * });
 * ```
 * #### Output
 * ```json
 * {
 *   "detail": "Activation request sent successfully"
 * }
 * ```
 */
export declare function sendCustomerUserActivationRequest({ redirectUrl, token, }: SendCustomerUserActivationRequestParameters): Promise<void>;
/**
 * 🚚 **Update Specific Customer User**
 *
 * **APICODE(USER-202)**
 * Updates a specific customer user.
 *
 * This function updates the details of a specific user, identified by
 * the `userToUpdateId`. This parameter is mandatory and validated
 * before the request is executed.
 *
 * 🛠 **Endpoint**: `PUT /v1/shop/customer-users/{userToUpdateId}`
 *
 * | Parameter          | Type   | Required | Description                                      |
 * |--------------------|--------|----------|--------------------------------------------------|
 * | `userToUpdateId`   | string | ✅        | The ID of the user you want to update.           |
 * | `firstName`        | string | ✅        | The first name of the user.                      |
 * | `lastName`         | string | ✅        | The last name of the user.                       |
 * | `civility`         | string | ❌        | The civility of the user (e.g., Mr., Ms.).       |
 * | `phone`            | string | ❌        | The phone number of the user.                    |
 * | `customFieldValues`| object | ❌        | Custom fields for additional user information.   |
 * | `groups`           | string[] | ❌      | The groups to which the user belongs.            |

 *
 * 📤 **Returns**:
 * A `Promise` resolving when the request is sent.
 *
 * 🛠 **Example usage**:
 * ```ts
 * const updatedUser = await updateCustomerUser({
 *  "userToUpdateId": "user1"
    "civility": "MR",
    "customFieldValues": [
      {
        "customFieldId": "string",
        "customFieldValue": "string"
      }
    ],
    "firstName": "string",
    "groups": [
      "string"
    ],
    "lastName": "string",
    "phone": "+1 6884-2243 27"
  });
 * ```
 * #### Output
 * ```json
 * {
 *   "detail": "User updated successfully"
 * }
 * ```
 */
export declare function updateSpecificCustomerUser({ userToUpdateId, civility, firstName, lastName, phone, groups, customFieldValues, idType, }: UpdateSpecificCustomerUserParameters): Promise<void>;
/**
 * 🚚 **Remove Accounts from User**
 *
 * **APICODE(USER-350)**
 * Removes accounts from a specific customer user.
 *
 * This function removes accounts of a specific user, identified by
 * the `userToUpdateId`. The parameters `userToUpdateId` and `accountIds` are mandatory and validated
 * before the request is executed.
 *
 * 🛠 **Endpoint**: `DELETE /v1/shop/customer-users/{userToUpdateId}/customer-accounts`
 *
 * | Parameter          | Type   | Required | Description                                      |
 * |--------------------|--------|----------|--------------------------------------------------|
 * | `userToUpdateId`   | string | ✅        | The ID of the user you want to update.           |
 * | `idType`           | `AccountIdType`| ❌ | The type of account ID (e.g., `DJUST_ID`, `EXTERNAL_ID`). |
 * | `accountIds`       | string[] | ✅      | The first name of the user.                      |

 *
 * 📤 **Returns**:
 * A `Promise` resolving when the request is sent.
 *
 * 🛠 **Example usage**:
 * ```ts
 * const updatedUser = await updateCustomerUser({
 *  "userToUpdateId": "user1",
 *  "idType": "EXTERNAL_ID",
    "accountIds": ["account1", "account2", ...],
  });
 * ```
 * #### Output
 * ```json
 * {
 *   "detail": "User successfully removed from accounts"
 * }
 * ```
 */
export declare function removeAccountsFromCustomerUser({ userToUpdateId, idType, accountIds, }: RemoveAccountsFromCustomerUserParameters): Promise<void>;
/**
 * 🚚 **Add User to Accounts**
 *
 * **APICODE(USER-250)**
 * Add specific user to accounts.
 *
 * This function removes accounts of a specific user, identified by
 * the `userToUpdateId`. The parameters `userToUpdateId` and `accountIds` are mandatory and validated
 * before the request is executed.
 *
 * 🛠 **Endpoint**: `PATCH /v1/shop/customer-users/{userToUpdateId}/customer-accounts`
 *
 * | Parameter          | Type   | Required | Description                                      |
 * |--------------------|--------|----------|--------------------------------------------------|
 * | `userToUpdateId`   | string | ✅        | The ID of the user you want to update.           |
 * | `idType`           | `AccountIdType`| ❌ | The type of account ID (e.g., `DJUST_ID`, `EXTERNAL_ID`). |
 * | `accountIds`       | string[] | ✅      | The first name of the user.                      |

 *
 * 📤 **Returns**:
 * A `Promise` resolving when the request is sent.
 *
 * 🛠 **Example usage**:
 * ```ts
 * const updatedUser = await updateCustomerUser({
 *  "userToUpdateId": "user1",
 *  "idType": "EXTERNAL_ID",
    "accountIds": ["account1", "account2", ...],
  });
 * ```
 * #### Output
 * ```json
 * {
 *   "detail": "User successfully added to accounts"
 * }
 * ```
 */
export declare function addCustomerUserToAccounts({ userToUpdateId, idType, accountIds, }: AddCustomerUserToAccountsParameters): Promise<void>;
//# sourceMappingURL=index.d.ts.map