import Timedoctor from "./Timedoctor"; export declare type ProjectsQuery = { offset?: number; limit?: number; all?: 0 | 1; assigned?: 0 | 1; latest_first?: 0 | 1; }; export declare type ProjectRespObj = { project_id: number; project_source: string; project_name: string; archived: boolean; url: string; users: number[]; }; export declare type ProjectsResponse = { count: string; url: string; offset: number; limit: string; projects: ProjectRespObj[]; }; /** * @class Projects * @property {Timedoctor} td * @property {function(start_date: Date, end_date: Date, params?)} get * @property {function(reasons, params?)} put */ export default class Projects { /** * @param td {Timedoctor} */ td: Timedoctor; constructor(td: Timedoctor); /** * Get projects list * @param user_id {string} * @param {{userId?: , offset?: number, limit?: number}} params * @return {Promise} return */ list(user_id: string, params?: ProjectsQuery): Promise>; /** * Get a specific project * @param {string} user_id * @param {string} project_id * @return {Promise>} */ get(user_id: string, project_id: string): Promise>; /** * Get a specific project * @param {string} user_id * @param {string} project_id * @return {Promise>} */ delete(user_id: string, project_id: string): Promise>; /** * Create a project * @param {string} user_id * @param {string[]|} assign_users * @param name {string} Project name * @return {Promise>} */ create(user_id: string, assign_users: string[] | "include_all", name: string): Promise>; /** * Update a single project * * @param {string} user_id * @param {string[] | "include_all"} assign_users * @param {string} project_id * @param {string} name * @param {string} archived * @return {Promise>} */ update(user_id: string, assign_users: string[] | "include_all", project_id: string, name: string, archived?: boolean): Promise>; /** * Un-assign a user from a project * * @param {string} user_id * @param {string[] | "include_all"} assign_users * @param {string} project_id * @return {Promise>} */ unassign(user_id: string, assign_users: string[] | "include_all", project_id: string): Promise>; }