import { TRouteConfigs } from './api_handler/parse_request_options'; import { TTicktickConfigs } from './configs'; import { TAvailableRoutes } from './routes/available_routes'; import { TAddTaskPayload } from './routes/tasks/add_task'; import { TUpdateTaskPayload } from './routes/tasks/update_task'; export default class Ticktick { #private; constructor(configs: TTicktickConfigs); auth: { login: () => Promise<{ token: string; userId: string; userCode: string; username: string; teamPro: boolean; proStartDate: string; proEndDate: string; subscribeType: string; subscribeFreq: string; needSubscribe: boolean; freq: string; inboxId: string; teamUser: boolean; activeTeamUser: boolean; freeTrial: boolean; pro: boolean; ds: boolean; }>; }; user: { getUserInformation: () => Promise<{ userCode: string; username: string; name: string; etimestamp: string | null; siteDomain: string; createdCampaign: string | null; createdDeviceInfo: string | null; filledPassword: boolean; accountDomain: string | null; extenalId: string | null; email: string | null; verifiedEmail: boolean; fakedEmail: boolean; phone: string | null; givenName: string | null; familyName: string | null; link: string | null; picture: string; gender: string | null; locale: string; verCode: string | null; verKey: string | null; externalId: string | null; displayName: string; }>; getUserDailyReminder: () => Promise<{ enable: boolean; dailyReminders: string[]; notifyOptions: string[]; weekDays: string[]; holidayNotify: boolean; }>; getUserSettings: () => Promise<{ id: number; timeZone: string; notificationOptions: string[]; locale: string; isTimeZoneOptionEnabled: boolean; startDayOfWeek: string; defaultRemindTime: string; dailyRemindTime: string; showMeridiem: boolean; defaultPriority: number; defaultDueDate: number; defaultRemindBefore: string; defaultReminds: string[]; defaultTags: any[]; defaultADReminders: any[]; defaultTimeMode: string; defaultTimeDuration: number; defaultToAdd: number; sortTypeOfAllProject: string; sortTypeOfInbox: string; sortTypeOfAssignMe: string; sortTypeOfToday: string; sortTypeOfTomorrow: string; sortTypeOfWeek: string; language: string; theme: string; removeDate: boolean; removeTag: boolean; showPomodoro: boolean; showCompleted: boolean; posOfOverdue: number; showFutureTask: boolean; showChecklist: boolean; webCalendarViewType: string; swipeConf: string; shortcutItemConfPc: string; webCalendarViewFilter: string; collapsedTime: number[]; enableCountdown: boolean; smartProjects: { name: "filter" | "assignee" | "inbox" | "all" | "today" | "tomorrow" | "n7ds" | "calendar" | "completed" | "trash" | "stats" | "summary" | "tag" | "project" | "subscribedCalendar" | "abandoned"; visibility: string | null; order: null; }[]; isNotificationEnabled: boolean; tabBars: { name: "TASK" | "CALENDAR" | "POMO" | "HABIT" | "SEARCH" | "SETTING"; enabled: boolean; }[]; weekNumbersEnabled: boolean; inboxColor: string; templateEnabled: boolean; calendarViewConf: { showCompleted: boolean; showFutureTask: boolean; showChecklist: boolean; showDetail: boolean; showFocusRecord: boolean; showHabit: boolean; cellColorType: string; }; startWeekOfYear: string; isEmailEnabled: boolean; defaultProjectId: string; nlpEnabled: boolean; dateKeptInText: boolean; nlpenabled: boolean; lunarEnabled: boolean; holidayEnabled: boolean; pomodoroEnabled: boolean; notificationEnabled: boolean; }>; }; data: { getUserDataT0: () => Promise<{ inboxId: string; tags: { type: number; name: string; rawName: string; label: string; sortOrder: number; sortType: string; color: string; etag: string; }[]; checkPoint: number; projectProfiles: { name: string; sortOrder: number; sortType: string | null; color: string; etag: string; id: string; modifiedTime: string; kind: string | null; viewMode: string | null; teamId: null; isOwner: boolean; inAll: boolean; userCount: number; closed: null; muted: boolean; transferred: null; groupId: string | null; notificationOptions: any[] | null; permission: null; needAudit: boolean; openToTeam: boolean | null; teamMemberPermission: null; source: number; sortOption?: any; timeline?: any; }[]; projectGroups: { userId: number; name: string; sortOrder: number; sortType: string; etag: string; id: string; deleted: number; showAll: boolean; viewMode: null; sortOption: null; teamId: null; timeline: null; }[]; filters: { name: string; sortOrder: number; sortType: string; etag: string; id: string; modifiedTime: string; createdTime: string; viewMode: null; sortOption: null; timeline: null; rule: string; }[]; syncTaskOrderBean: { taskOrderByDate?: any; taskOrderByPriority?: any; taskOrderByProject?: any; }; syncOrderBean: { orderByType: { projectPinned?: any; }; }; syncOrderBeanV3: { orderByType?: any; }; checks: null; remindChanges: any[]; syncTaskBean: { update: { status: number; sortOrder: number; etag: string; id: string; projectId: string; title: string; timeZone: string; isFloating: boolean; reminders: { id: string; trigger: string; }[]; exDate: any[]; priority: number; items: any[]; modifiedTime: string; deleted: number; createdTime: string; creator: number; kind: string | null; content?: string | undefined; isAllDay?: boolean | undefined; completedTime?: string | undefined; completedUserId?: number | undefined; progress?: number | undefined; columnId?: string | undefined; desc?: string | undefined; reminder?: string | undefined; repeatFirstDate?: string | undefined; repeatTaskId?: string | undefined; repeatFrom?: string | undefined; focusSummaries?: any[] | undefined; deletedTime?: number | undefined; }[]; delete: { projectId: string; taskId: string; }[]; add: { status: number; sortOrder: number; id: string; projectId: string; title: string; startDate: string; dueDate: null; timeZone: string; isFloating: boolean; reminders: { id: string; trigger: string; }[]; exDate: any[]; priority: number; items: any[]; modifiedTime: string; createdTime: string; kind: string | null; repeatFlag: null; assignee: null; tags: any[]; content?: string | undefined; isAllDay?: boolean | undefined; completedTime?: string | undefined; completedUserId?: number | undefined; progress?: number | undefined; columnId?: string | undefined; desc?: string | undefined; reminder?: string | undefined; repeatFirstDate?: string | undefined; repeatTaskId?: string | undefined; }[]; empty: boolean; }; }>; getUserDataT1: () => Promise<{ inboxId: string; tags: { type: number; name: string; rawName: string; label: string; sortOrder: number; sortType: string; color: string; etag: string; }[]; checkPoint: number; projectProfiles: { name: string; sortOrder: number; sortType: string | null; color: string; etag: string; id: string; modifiedTime: string; kind: string | null; viewMode: string | null; teamId: null; isOwner: boolean; inAll: boolean; userCount: number; closed: null; muted: boolean; transferred: null; groupId: string | null; notificationOptions: any[] | null; permission: null; needAudit: boolean; openToTeam: boolean | null; teamMemberPermission: null; source: number; sortOption?: any; timeline?: any; }[]; projectGroups: { userId: number; name: string; sortOrder: number; sortType: string; etag: string; id: string; deleted: number; showAll: boolean; viewMode: null; sortOption: null; teamId: null; timeline: null; }[]; filters: { name: string; sortOrder: number; sortType: string; etag: string; id: string; modifiedTime: string; createdTime: string; viewMode: null; sortOption: null; timeline: null; rule: string; }[]; syncTaskOrderBean: { taskOrderByDate?: any; taskOrderByPriority?: any; taskOrderByProject?: any; }; syncOrderBean: { orderByType: { projectPinned?: any; }; }; syncOrderBeanV3: { orderByType?: any; }; checks: null; remindChanges: any[]; syncTaskBean: { update: { status: number; sortOrder: number; etag: string; id: string; projectId: string; title: string; timeZone: string; isFloating: boolean; reminders: { id: string; trigger: string; }[]; exDate: any[]; priority: number; items: any[]; modifiedTime: string; deleted: number; createdTime: string; creator: number; kind: string | null; content?: string | undefined; isAllDay?: boolean | undefined; completedTime?: string | undefined; completedUserId?: number | undefined; progress?: number | undefined; columnId?: string | undefined; desc?: string | undefined; reminder?: string | undefined; repeatFirstDate?: string | undefined; repeatTaskId?: string | undefined; repeatFrom?: string | undefined; focusSummaries?: any[] | undefined; deletedTime?: number | undefined; }[]; delete: { projectId: string; taskId: string; }[]; add: { status: number; sortOrder: number; id: string; projectId: string; title: string; startDate: string; dueDate: null; timeZone: string; isFloating: boolean; reminders: { id: string; trigger: string; }[]; exDate: any[]; priority: number; items: any[]; modifiedTime: string; createdTime: string; kind: string | null; repeatFlag: null; assignee: null; tags: any[]; content?: string | undefined; isAllDay?: boolean | undefined; completedTime?: string | undefined; completedUserId?: number | undefined; progress?: number | undefined; columnId?: string | undefined; desc?: string | undefined; reminder?: string | undefined; repeatFirstDate?: string | undefined; repeatTaskId?: string | undefined; }[]; empty: boolean; deletedInTrash: { projectId: string; taskId: string; }[]; deletedForever: { projectId: string; taskId: string; }[]; }; }>; }; projects: { getProjects: () => Promise<{ name: string; sortOrder: number; sortType: string | null; color: string; etag: string; id: string; modifiedTime: string; kind: string | null; viewMode: string | null; sortOption: { groupBy: string; orderBy: string; } | null; teamId: null; timeline: { sortType: string; sortOption: { groupBy: string; orderBy: string; }; range: null; } | null; isOwner: boolean; inAll: boolean; userCount: number; closed: null; muted: boolean; transferred: null; groupId: string | null; notificationOptions: any[] | null; permission: null; needAudit: boolean; openToTeam: boolean | null; teamMemberPermission: null; source: number; }[]>; getProjectSections: (id: string) => Promise<{ name: string; sortOrder: number; etag: string; id: string; projectId: string; modifiedTime: string; createdTime: string; }[]>; }; tags: { getTags: () => Promise<{ type: number; name: string; rawName: string; label: string; sortOrder: number; sortType: string; color: string; etag: string; }[]>; }; habits: { getHabits: () => Promise<{ status: number; type: string; name: string; sortOrder: number; color: string; etag: string; id: string; reminders: string[]; modifiedTime: string; createdTime: string; iconRes: string; encouragement: string; totalCheckIns: number; archivedTime: string | null; goal: number; step: number; unit: string; repeatRule: string; recordEnable: boolean; sectionId: string; targetDays: number; targetStartDate: number; completedCycles: number; exDates: null; }[]>; }; tasks: { addTask: (payload: TAddTaskPayload) => Promise<{ id2etag?: any; id2error?: any; }>; updateTask: (payload: TUpdateTaskPayload) => Promise<{ id2etag?: any; id2error?: any; }>; getProjectCompletedTasks: (id: string) => Promise<{ status: number; sortOrder: number; etag: string; id: string; projectId: string; title: string; startDate: string; dueDate: string; timeZone: string; isFloating: boolean; reminders: any[]; exDate: any[]; completedTime: string; completedUserId: number; priority: number; items: any[]; modifiedTime: string; deleted: number; createdTime: string; creator: number; kind: string | null; content?: string | undefined; isAllDay?: boolean | undefined; progress?: number | undefined; columnId?: string | undefined; }[]>; getCompletedTasks: () => Promise<{ status: number; sortOrder: number; etag: string; id: string; projectId: string; title: string; startDate: string; dueDate: string; timeZone: string; isFloating: boolean; reminders: any[]; exDate: any[]; completedTime: string; completedUserId: number; priority: number; items: any[]; modifiedTime: string; deleted: number; createdTime: string; creator: number; kind: string | null; content?: string | undefined; isAllDay?: boolean | undefined; progress?: number | undefined; columnId?: string | undefined; }[]>; }; customUrl(routeConfigs: TRouteConfigs & { route: TAvailableRoutes; }): Promise; }