import { ITGitRequestConfig } from '..'; import { ProjectId, IUser, IPerPageParams, AccessLevel } from '../base'; interface IMemberAll { ( params: { id: ProjectId; query?: string; } & IPerPageParams, requestOptions?: ITGitRequestConfig, ): Promise; user: IMemberAllUser; } type IMemberAllUser = ( params: { id: ProjectId; userid: number; }, requestOptions?: ITGitRequestConfig, ) => Promise; type IMembersAdd = ( params: { id: ProjectId; user_id: number; access_level: AccessLevel; expires_at?: string; }, requestOptions?: ITGitRequestConfig, ) => Promise< (IUser & { expires_at: string; })[] >; type IMembersGet = ( params: { id: ProjectId; user_id: number; } & IPerPageParams, requestOptions?: ITGitRequestConfig, ) => Promise< IUser & { access_level: AccessLevel; } >; type IMembersModify = ( params: { id: ProjectId; user_id: number; access_level: AccessLevel; expires_at?: string; }, requestOptions?: ITGitRequestConfig, ) => Promise< (IUser & { expires_at: string; })[] >; type IMembersDelete = ( params: { id: ProjectId; user_id: number; }, requestOptions?: ITGitRequestConfig, ) => Promise; export interface IMembers { ( params: { id: ProjectId; query?: string; } & IPerPageParams, requestOptions?: ITGitRequestConfig, ): Promise; all: IMemberAll; add: IMembersAdd; get: IMembersGet; modify: IMembersModify; delete: IMembersDelete; }