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 FilesClient { type Options = BaseClientOptions; interface RequestOptions extends BaseRequestOptions { } } export declare class FilesClient { protected readonly _options: NormalizedClientOptionsWithAuth; constructor(options?: FilesClient.Options); /** * Retrieve a paginated list of CRM files 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 files per page. * * @param {Brevo.GetCrmFilesRequest} request * @param {FilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Brevo.BadRequestError} * @throws {@link errors.BrevoError} * @throws {@link errors.BrevoTimeoutError} * * @example * await client.files.getAllFiles() */ getAllFiles(request?: Brevo.GetCrmFilesRequest, requestOptions?: FilesClient.RequestOptions): core.HttpResponsePromise; private __getAllFiles; /** * Upload a file and associate it with a contact, company, or deal. The file must be sent as multipart form data with a maximum size of 10 MB. You can optionally link the file to a specific entity by providing the corresponding entity ID. * * @param {Brevo.PostCrmFilesRequest} request * @param {FilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Brevo.BadRequestError} * @throws {@link errors.BrevoError} * @throws {@link errors.BrevoTimeoutError} * * @example * import { createReadStream } from "fs"; * await client.files.uploadAFile({ * file: fs.createReadStream("/path/to/your/file") * }) */ uploadAFile(request: Brevo.PostCrmFilesRequest, requestOptions?: FilesClient.RequestOptions): core.HttpResponsePromise; private __uploadAFile; /** * Get a temporary download URL for a CRM file by its identifier. The returned URL is valid for 5 minutes only and provides direct access to the file content. * * @param {Brevo.GetCrmFilesIdRequest} request * @param {FilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Brevo.BadRequestError} * @throws {@link Brevo.NotFoundError} * @throws {@link errors.BrevoError} * @throws {@link errors.BrevoTimeoutError} * * @example * await client.files.downloadAFile({ * id: "id" * }) */ downloadAFile(request: Brevo.GetCrmFilesIdRequest, requestOptions?: FilesClient.RequestOptions): core.HttpResponsePromise; private __downloadAFile; /** * Permanently delete a CRM file by its identifier. This removes the file from storage and unlinks it from any associated contacts, companies, or deals. * * @param {Brevo.DeleteCrmFilesIdRequest} request * @param {FilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Brevo.BadRequestError} * @throws {@link Brevo.NotFoundError} * @throws {@link errors.BrevoError} * @throws {@link errors.BrevoTimeoutError} * * @example * await client.files.deleteAFile({ * id: "id" * }) */ deleteAFile(request: Brevo.DeleteCrmFilesIdRequest, requestOptions?: FilesClient.RequestOptions): core.HttpResponsePromise; private __deleteAFile; /** * Retrieve the metadata and details of a specific CRM file by its identifier. This returns information such as the file name, size, type, creation date, and associated entities, but does not include the file content itself. * * @param {Brevo.GetCrmFilesIdDataRequest} request * @param {FilesClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link Brevo.BadRequestError} * @throws {@link Brevo.NotFoundError} * @throws {@link errors.BrevoError} * @throws {@link errors.BrevoTimeoutError} * * @example * await client.files.getFileDetails({ * id: "id" * }) */ getFileDetails(request: Brevo.GetCrmFilesIdDataRequest, requestOptions?: FilesClient.RequestOptions): core.HttpResponsePromise; private __getFileDetails; }