import { API } from './types'; import * as ResponseType from './responseTypes'; import { DateString, MIMETypeString, URLString } from './aliases'; export declare namespace Quota { type GetCourseQuota = API<"/api/v1/courses/:course_id/files/quota", { course_id: number; }, "GET", {}, { quota: number; quota_used: number; }>; type GetGroupQuota = API<"/api/v1/groups/:group_id/files/quota", { group_id: number; }, "GET", {}, { quota: number; quota_used: number; }>; type GetUserQuota = API<"/api/v1/users/:user_id/files/quota", { user_id: number | "self"; }, "GET", {}, { quota: number; quota_used: number; }>; } export declare namespace List { type ListParam = { content_type: MIMETypeString[]; exclude_content_types: MIMETypeString[]; search_term: string; include: ("user" | "usage_rights")[]; only: ("names")[]; sort: "name" | "size" | "created_at" | "updated_at" | "content_type" | "user"; order: "asc" | "desc"; }; type Course = API<"/api/v1/courses/:course_id/files", { course_id: number; }, "GET", Partial, ResponseType.File[]>; type User = API<"/api/v1/users/:user_id/files", { user_id: number | "self"; }, "GET", Partial, ResponseType.File[]>; type Group = API<"/api/v1/groups/:group_id/files", { group_id: number; }, "GET", Partial, ResponseType.File[]>; type Folder = API<"/api/v1/folders/:id/files", { id: number; }, "GET", Partial, ResponseType.File[]>; } export declare namespace GetFile { type GetFile = API<"/api/v1/files/:id", { id: number; }, "GET", Partial<{ include: ("user" | "usage_rights")[]; }>, ResponseType.File>; type GetFilePost = API<"/api/v1/files/:id", { id: number; }, "POST", Partial<{ include: ("user" | "usage_rights")[]; }>, ResponseType.File>; type GetCourseFile = API<"/api/v1/courses/:course_id/files/:id", { course_id: number; id: number; }, "GET", Partial<{ include: ("user" | "usage_rights")[]; }>, ResponseType.File>; type GetGroupFile = API<"/api/v1/groups/:group_id/files/:id", { group_id: number; id: number; }, "GET", Partial<{ include: ("user" | "usage_rights")[]; }>, ResponseType.File>; type GetUserFile = API<"/api/v1/users/:user_id/files/:id", { user_id: number | "self"; id: number; }, "GET", Partial<{ include: ("user" | "usage_rights")[]; }>, ResponseType.File>; } export declare type UpateFile = API<"/api/v1/files/:id", { id: number; }, "PUT", Partial<{ name: string; parent_folder_id: string; on_duplicate: "overwrite" | " rename"; lock_at: DateString; unlock_at: DateString; locked: boolean; hidden: boolean; }>, ResponseType.File>; export declare type DeleteFile = API<"/api/v1/files/:id", { id: number; }, "DELETE", Partial<{ replace: boolean; }>, ResponseType.File>; export declare type ResetLinkVerifier = API<"/api/v1/files/:id/reset_verifier", { id: number; }, "POST", {}, ResponseType.File>; export declare type ListFolders = API<"/api/v1/folders/:id/folders", { id: number; }, "GET", {}, ResponseType.Folder[]>; export declare namespace ListAllFolders { type ListCourseFolders = API<"/api/v1/courses/:course_id/folders", { course_id: number; }, "GET", {}, ResponseType.Folder[]>; type ListUserFolders = API<"/api/v1/users/:user_id/folders", { user_id: number | "self"; }, "GET", {}, ResponseType.Folder[]>; type ListGroupFolders = API<"/api/v1/groups/:group_id/folders", { group_id: number; }, "GET", {}, ResponseType.Folder[]>; } export declare namespace ResolvePath { type Course = API<"/api/v1/courses/:course_id/folders/by_path/*full_path", { course_id: number; full_path: string | ""; }, "GET", {}, ResponseType.Folder[]>; type User = API<"/api/v1/users/:user_id/folders/by_path/*full_path", { user_id: number | "self"; full_path: string | ""; }, "GET", {}, ResponseType.Folder[]>; type Group = API<"/api/v1/groups/:group_id/folders/by_path/*full_path", { group_id: number; full_path: string; }, "GET", {}, ResponseType.Folder[]>; } export declare namespace GetFolder { type Course = API<"/api/v1/courses/:course_id/folders/:id", { course_id: number; id: string; }, "GET", {}, ResponseType.Folder>; type User = API<"/api/v1/users/:user_id/folders/:id", { user_id: number | "self"; id: number; }, "GET", {}, ResponseType.Folder>; type Group = API<"/api/v1/groups/:group_id/folders/:id", { group_id: number; id: number; }, "GET", {}, ResponseType.Folder>; type Folder = API<"/api/v1/folders/:id", { id: number; }, "GET", {}, ResponseType.Folder>; } export declare type UpdateFoler = API<"/api/v1/folders/:id", { id: number; }, "PUT", Partial<{ name: string; parent_folder_id: string; lock_at: DateString; unlock_at: DateString; locked: boolean; hidden: boolean; position: boolean; }>, ResponseType.Folder>; export declare namespace CreateFoler { type CreateFolerParam = { name: string; } & Partial<{ parent_folder_id: string; parent_folder_path: string; lock_at: DateString; unlock_at: DateString; locked: boolean; hidden: boolean; position: number; }>; type Course = API<"/api/v1/courses/:course_id/folders", { course_id: number; }, "POST", CreateFolerParam, ResponseType.Folder>; type User = API<"/api/v1/users/:user_id/folders", { user_id: number | "self"; }, "POST", CreateFolerParam, ResponseType.Folder>; type Group = API<"/api/v1/groups/:group_id/folders", { group_id: number; }, "POST", CreateFolerParam, ResponseType.Folder>; type Folder = API<"/api/v1/folders/:folder_id/folders", { folder_id: number; }, "POST", CreateFolerParam, ResponseType.Folder>; } export declare type DeleteFolder = API<"/api/v1/folders/:id", { id: number; }, "DELETE", Partial<{ force: boolean; }>, ResponseType.Folder>; export declare type UploadAFile = API<"/api/v1/folders/:folder_id/files", { folder_id: number; }, "POST", { name: string; size: number; content_type: MIMETypeString; parent_folder_id?: number; on_duplicate: "overwrite" | " rename"; success_include: ("user" | "usage_rights")[]; }, { upload_url: URLString; upload_params: { key?: string; [unspecified: string]: any; }; }>; export declare type CopyAFile = API<"/api/v1/folders/:dest_folder_id/copy_file", { dest_folder_id: number; }, "POST", { source_file_id: string; } & Partial<{ on_duplicate: "overwrite" | "rename"; }>, ResponseType.File>; export declare type CopyAFolder = API<"/api/v1/folders/:dest_folder_id/copy_folder", { dest_folder_id: number; }, "POST", { source_file_id: string; }, ResponseType.Folder>; export declare namespace GetUploadedMediaFolderForUser { type Course = API<"/api/v1/courses/:course_id/folders/media", { course_id: number; }, "GET", {}, ResponseType.Folder>; type Group = API<"/api/v1/groups/:group_id/folders/media", { group_id: number; }, "GET", {}, ResponseType.Folder>; } export declare namespace SetUsageRights { type SetUsageRightsParam = { file_ids: string[]; } & Partial<{ folder_ids: string[]; publish: boolean; usage_rights: { use_justification: string; legal_copyright: string; license: string; }; }>; type Course = API<"/api/v1/courses/:course_id/usage_rights", { course_id: number; }, "PUT", SetUsageRightsParam, ResponseType.UsageRights>; type Group = API<"/api/v1/groups/:group_id/usage_rights", { group_id: number; }, "PUT", SetUsageRightsParam, ResponseType.UsageRights>; type User = API<"/api/v1/users/:user_id/usage_rights", { user_id: number | "self"; }, "PUT", SetUsageRightsParam, ResponseType.UsageRights>; } export declare namespace RemoveUsageRights { type RemoveUsageRightsParam = { file_ids: string[]; } & Partial<{ folder_ids: string[]; }>; type User = API<"/api/v1/users/:user_id/usage_rights", { user_id: number | "self"; }, "DELETE", RemoveUsageRightsParam, ResponseType.UsageRights>; type Group = API<"/api/v1/groups/:group_id/usage_rights", { group_id: number; }, "DELETE", RemoveUsageRightsParam, ResponseType.UsageRights>; type Course = API<"/api/v1/courses/:course_id/usage_rights", { course_id: number; }, "DELETE", RemoveUsageRightsParam, ResponseType.UsageRights>; }