import { IamClientCore } from "../core.js";
import { RequestOptions } from "../lib/sdks.js";
import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
import { IamClientError } from "../models/errors/iamclienterror.js";
import * as errors from "../models/errors/index.js";
import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
import * as operations from "../models/operations/index.js";
import { APIPromise } from "../types/async.js";
import { Result } from "../types/fp.js";
/**
 * Update specific fields of an agreement
 *
 * @remarks
 * This operation updates one or more fields of a specific agreement identified by its `agreementId`.
 * The operation supports partial updates, allowing clients to modify only the fields they need without affecting the rest of the agreement data.
 *
 * The request body should contain a JSON payload with the fields to be updated. Only the fields provided in the request body will be modified; all other fields remain unchanged. The operation returns a `204 No Content` response on success.
 *
 * This operation is essential for maintaining and evolving agreement data throughout the agreement's lifecycle, such as updating status, provisions, custom fields, or metadata based on business events or reviews.
 *
 * ### Use Cases:
 * - **Updating agreement status or review completion**: Mark agreements as reviewed, completed, or pending further action based on internal workflows.
 * - **Modifying provision details**: Update agreement terms, effective dates, expiration dates, or renewal conditions as circumstances change.
 * - **Managing custom attributes**: Add or modify user-defined fields and custom metadata to capture additional business context for the agreement.
 * - **Recording business events**: Update agreements to reflect changes such as amendments, renewals, or termination notices.
 * - **Synchronizing agreements across systems**: Update agreements in response to changes detected in external systems (e.g., ERP, CRM) to maintain data integrity.
 *
 * ### Key Features:
 * - **Partial Updates**: Modify only the fields you need; other agreement data remains intact.
 * - **Flexible Payload**: Accept JSON objects with any combination of updateable agreement fields, including provisions, metadata, and custom attributes.
 * - **Data Integrity**: Validates all input data to ensure compliance with agreement structure and data constraints.
 *
 * If set, this operation will use {@link Security.accessToken} from the global security.
 */
export declare function agreementManagerAgreementsPatchAgreement(client: IamClientCore, request: operations.PatchAgreementRequest, options?: RequestOptions): APIPromise<Result<void, errors.ErrDetails | IamClientError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
//# sourceMappingURL=agreementManagerAgreementsPatchAgreement.d.ts.map