"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Contacts = void 0;
const contactsCreate_js_1 = require("../funcs/contactsCreate.js");
const contactsDelete_js_1 = require("../funcs/contactsDelete.js");
const contactsList_js_1 = require("../funcs/contactsList.js");
const contactsRetrieve_js_1 = require("../funcs/contactsRetrieve.js");
const contactsUpdate_js_1 = require("../funcs/contactsUpdate.js");
const sdks_js_1 = require("../lib/sdks.js");
const fp_js_1 = require("../types/fp.js");
class Contacts extends sdks_js_1.ClientSDK {
    /**
     * Create a contact
     *
     * @remarks
     * Creates a new contact with a unique external_id. If a contact with the same external_id already exists, the operation will fail. Use this endpoint to add users from your system to orq.ai for tracking their usage and engagement.
     */
    async create(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, contactsCreate_js_1.contactsCreate)(this, request, options));
    }
    /**
     * List contacts
     *
     * @remarks
     * Retrieves a paginated list of contacts in your workspace. Use pagination parameters to navigate through large contact lists efficiently.
     */
    async list(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, contactsList_js_1.contactsList)(this, request, options));
    }
    /**
     * Retrieve a contact
     *
     * @remarks
     * Retrieves detailed information about a specific contact using their contact ID or external ID from your system.
     */
    async retrieve(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, contactsRetrieve_js_1.contactsRetrieve)(this, request, options));
    }
    /**
     * Update a contact
     *
     * @remarks
     * Updates specific fields of an existing contact. Only the fields provided in the request body will be updated.
     */
    async update(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, contactsUpdate_js_1.contactsUpdate)(this, request, options));
    }
    /**
     * Delete a contact
     *
     * @remarks
     * Permanently deletes a contact from your workspace and cleans up associated budget configurations. This action cannot be undone.
     */
    async delete(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, contactsDelete_js_1.contactsDelete)(this, request, options));
    }
}
exports.Contacts = Contacts;
//# sourceMappingURL=contacts.js.map