import type { ApiClient } from '../http';
import type { Project, ProjectCreateRequest, ProjectListParams, ProjectMember, ProjectMemberCreateRequest, ProjectMemberListParams, ProjectMemberUpdateRequest, ProjectRegistration, ProjectUpdateRequest } from '../models';
import { NavigablePage } from '../models';
import { Resource } from './Resource';
export declare class ProjectResource extends Resource {
    constructor(client: ApiClient);
    list(params?: ProjectListParams): Promise<NavigablePage<Project>>;
    create(data: ProjectCreateRequest): Promise<Project>;
    update(id: string, data: ProjectUpdateRequest): Promise<Project>;
    get(id: string): Promise<Project>;
    delete(id: string): Promise<void>;
    search(params: ProjectListParams): Promise<NavigablePage<Project>>;
    listMembers(projectId: string, params: ProjectMemberListParams): Promise<NavigablePage<ProjectMember>>;
    addMember(projectId: string, data: ProjectMemberCreateRequest): Promise<ProjectMember>;
    getMember(projectId: string, memberId: string): Promise<ProjectMember>;
    updateMember(projectId: string, memberId: string, data: ProjectMemberUpdateRequest): Promise<ProjectMember>;
    updateMembers(projectId: string, registrations: ProjectRegistration[]): Promise<void>;
    removeMember(projectId: string, memberId: string): Promise<void>;
    batchAddMembers(projectId: string, members: ProjectMemberCreateRequest[]): Promise<void>;
    batchRemoveMembers(projectId: string, memberIds: string[]): Promise<void>;
}
//# sourceMappingURL=ProjectResource.d.ts.map