import { ITGitRequestConfig } from '.'; import { IPerPageParams, IUser, UserId } from './base'; export interface IUsers { (params: IPerPageParams, requestOptions?: ITGitRequestConfig): Promise; add: IUsersAdd; get: IUsersGet; fromEmail: IUsersFromEmail; modify: IUsersModify; delete: IUsersDelete; keys: IUsersKeys; } export interface IUsersParams { email: string; password?: string; username: string; extern_uid: number; provider: string; name?: string; skype?: string; linkedin?: string; twitter?: string; qq?: string; wechat?: string; website_url?: string; projects_limit?: number; bio?: string; admin?: boolean; can_create_group?: boolean; confirm?: boolean; } export type IUsersAdd = (params: IUsersParams, requestOptions?: ITGitRequestConfig) => Promise; export type IUsersGet = (params: { id: UserId }, requestOptions?: ITGitRequestConfig) => Promise; export type IUsersFromEmail = ( params: { email: string }, requestOptions?: ITGitRequestConfig, ) => Promise<{ name: string; username: string; web_url: string; }>; export type IUsersModify = (params: IUsersParams, requestOptions?: ITGitRequestConfig) => Promise; export type IUsersDelete = (params: { id: UserId }, requestOptions?: ITGitRequestConfig) => Promise; export interface IUsersKeys { (params: { uid: number }, requestOptions?: ITGitRequestConfig): Promise<{ id: number; title: string; key: string; created_at: string; }>; add: IUsersAdd; delete: IUserDelete; } export type IUsersKeysAdd = ( params: { id: UserId; title: string; key: string; }, requestOptions?: ITGitRequestConfig, ) => Promise; export type IUserDelete = ( params: { id: UserId; uid: number; }, requestOptions?: ITGitRequestConfig, ) => Promise;