import { MinistryPlatformClient } from "../core/ministryPlatformClient.js";
import { FileDescription, FileUpdateParams, FileUploadParams } from "../Interfaces/mpProviderInterfaces.js";
export declare class FileService {
    private client;
    constructor(client: MinistryPlatformClient);
    /**
     * Returns the metadata (descriptions) of the files attached to the specified record.
     */
    getFilesByRecord(table: string, recordId: number, defaultOnly?: boolean): Promise<FileDescription[]>;
    /**
     * Uploads and attaches multiple files to the specified record.
     */
    uploadFiles(table: string, recordId: number, files: File[], params?: FileUploadParams): Promise<FileDescription[]>;
    /**
     * Updates the content and/or metadata of the file corresponding to provided identifier.
     */
    updateFile(fileId: number, file?: File, params?: FileUpdateParams): Promise<FileDescription>;
    /**
     * Deletes the file corresponding to provided identifier.
     */
    deleteFile(fileId: number, userId?: number): Promise<void>;
    /**
     * Returns the content of the file corresponding to provided globally unique identifier.
     * This method does NOT require authentication.
     */
    getFileContentByUniqueId(uniqueFileId: string, thumbnail?: boolean): Promise<Blob>;
    /**
     * Returns the file metadata (description) corresponding to provided database identifier.
     */
    getFileMetadata(fileId: number): Promise<FileDescription>;
    /**
     * Returns the file metadata (description) corresponding to provided globally unique identifier.
     */
    getFileMetadataByUniqueId(uniqueFileId: string): Promise<FileDescription>;
}
