import { BaseCollection } from "./base_collection";
import { File } from "../models/file";
import { QueuedProcess } from "../models/queued_process";
import { UploadFileParams } from "../interfaces/upload_file_params";
import { DownloadFileParams } from "../interfaces/download_file_params";
import { Keyable } from "../interfaces/keyable";
import { ProjectWithPagination } from "../interfaces/project_with_pagination";
import { PaginatedResult } from "../interfaces/paginated_result";
import { ProjectOnly } from "../interfaces/project_only";
interface ListFileParams extends ProjectWithPagination {
    filter_filename?: string;
}
type FileDeleted = {
    project_id: string;
    file_deleted: boolean;
};
export declare class Files extends BaseCollection {
    protected static rootElementName: string;
    protected static prefixURI: string;
    protected static elementClass: typeof File;
    protected static secondaryElementNameSingular: string;
    protected static secondaryElementClass: typeof QueuedProcess;
    list(request_params: ListFileParams): Promise<PaginatedResult<File>>;
    upload(project_id: string, upload: UploadFileParams): Promise<QueuedProcess>;
    download(project_id: string, download: DownloadFileParams): Promise<Keyable>;
    delete(file_id: string | number, request_params: ProjectOnly): Promise<FileDeleted>;
}
export {};