import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js";
import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.js";
import * as core from "../../../../core/index.js";
import * as Brevo from "../../../index.js";
export declare namespace NotesClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class NotesClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<NotesClient.Options>;
    constructor(options: NotesClient.Options);
    /**
     * Retrieve a paginated list of CRM notes with optional filtering by entity type, entity IDs, and date range. Results are sorted by creation date in descending order by default, with a default limit of 50 notes per page.
     *
     * @param {Brevo.GetCrmNotesRequest} request
     * @param {NotesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.notes.getAllNotes()
     */
    getAllNotes(request?: Brevo.GetCrmNotesRequest, requestOptions?: NotesClient.RequestOptions): core.HttpResponsePromise<Brevo.Note[]>;
    private __getAllNotes;
    /**
     * Create a new CRM note and optionally associate it with contacts, companies, or deals. The note text content is required, and you can link the note to multiple entities simultaneously during creation.
     *
     * @param {Brevo.NoteData} request
     * @param {NotesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.UnsupportedMediaTypeError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.notes.createANote({
     *         text: "<p>Meeting notes: <b>Action item</b> - visit <a href=\"https://www.brevo.com/\">Brevo</a> for details.</p>"
     *     })
     */
    createANote(request: Brevo.NoteData, requestOptions?: NotesClient.RequestOptions): core.HttpResponsePromise<Brevo.PostCrmNotesResponse>;
    private __createANote;
    /**
     * Retrieve the full details of a single CRM note by its identifier. The response includes the note''s text content, creation date, author, and any associated contacts, companies, or deals.
     *
     * @param {Brevo.GetCrmNotesIdRequest} request
     * @param {NotesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.notes.getANote({
     *         id: "id"
     *     })
     */
    getANote(request: Brevo.GetCrmNotesIdRequest, requestOptions?: NotesClient.RequestOptions): core.HttpResponsePromise<Brevo.Note>;
    private __getANote;
    /**
     * Permanently delete a CRM note by its identifier. This removes the note and unlinks it from any associated contacts, companies, or deals.
     *
     * @param {Brevo.DeleteCrmNotesIdRequest} request
     * @param {NotesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.notes.deleteANote({
     *         id: "id"
     *     })
     */
    deleteANote(request: Brevo.DeleteCrmNotesIdRequest, requestOptions?: NotesClient.RequestOptions): core.HttpResponsePromise<void>;
    private __deleteANote;
    /**
     * Update an existing CRM note''s text content and its associations with contacts, companies, or deals. You can modify the note text, change the pinned status, or update the linked entities.
     *
     * @param {Brevo.PatchCrmNotesIdRequest} request
     * @param {NotesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Brevo.BadRequestError}
     * @throws {@link Brevo.NotFoundError}
     * @throws {@link Brevo.UnsupportedMediaTypeError}
     * @throws {@link errors.BrevoError}
     * @throws {@link errors.BrevoTimeoutError}
     *
     * @example
     *     await client.notes.updateANote({
     *         id: "id",
     *         body: {
     *             text: "<p>Meeting notes: <b>Action item</b> - visit <a href=\"https://www.brevo.com/\">Brevo</a> for details.</p>"
     *         }
     *     })
     */
    updateANote(request: Brevo.PatchCrmNotesIdRequest, requestOptions?: NotesClient.RequestOptions): core.HttpResponsePromise<void>;
    private __updateANote;
}
