/// <reference types="node" />
import { ClientState } from '../index';
import { FileMetadataReq, FileMetadataRes } from '../interfaces/file.interface';
import { IHttpResponse } from '../interfaces/http.interface';
import { HttpService } from '../services/HttpService';
export interface HatFiles {
    uploadFile: (metadata: FileMetadataReq, file: ArrayBuffer | Buffer, fileType: string) => Promise<IHttpResponse<FileMetadataRes>>;
    markFileAsPublic: (fileId: string) => Promise<IHttpResponse<FileMetadataRes>>;
    markFileAsPrivate: (fileId: string) => Promise<IHttpResponse<FileMetadataRes>>;
    updateFileParameters: (fileId: string, metadata: FileMetadataReq) => Promise<IHttpResponse<FileMetadataRes>>;
    searchFiles: (metadata: FileMetadataReq) => Promise<IHttpResponse<Array<FileMetadataRes>>>;
    deleteFile: (fileId: string) => Promise<IHttpResponse<FileMetadataRes>>;
    generateFileContentUrl: (fileId: string) => string;
}
export declare const hatFiles: (config: ClientState, headers: Record<string, string>, httpSvc: HttpService) => HatFiles;
