import { n as FileUploadData, t as FileDownloadData } from "../files.types-BDqIUdfP.mjs";
import ComposioClient from "@composio/client";

//#region src/models/Files.node.d.ts

declare class Files {
  private readonly client;
  constructor(client: ComposioClient);
  /**
   * Upload a file and return the file data.
   *
   * @param params - The upload parameters.
   * @param {File | string} params.file - The path to the file to upload, a URL of the file, or a File object.
   * @param {string} params.toolSlug - The slug of the tool that is uploading the file.
   * @param {string} params.toolkitSlug - The slug of the toolkit that is uploading the file.
   * @returns {Promise<FileUploadData>} The uploaded file data.
   *
   * @example
   *
   * const fileData = await composio.files.upload({
   *   file: 'path/to/file.pdf',
   *   toolSlug: 'google_drive_upload',
   *   toolkitSlug: 'google_drive'
   * });
   * */
  upload({
    file,
    toolSlug,
    toolkitSlug
  }: {
    file: File | string;
    toolSlug: string;
    toolkitSlug: string;
  }): Promise<FileUploadData>;
  /**
   * Download a file from S3 and return the file data.
   * @param s3key - The S3 key of the file to download.
   * @returns The file data.
   */
  download({
    toolSlug,
    s3Url,
    mimeType
  }: {
    s3Url: string;
    toolSlug: string;
    mimeType: string;
  }): Promise<FileDownloadData>;
}
//#endregion
export { Files };