import * as API from "../../common/api"; import { CollectionDoc, Events, QueryParams, Resource, ResourceId, SingleDoc, State, SuspensionEvent, Task } from "../../common/structures"; import * as Accounts from "../accounts/index"; import * as Billing from "../billing/index"; import * as Invites from "./invites"; export declare function document(): typeof CollectionRequest; export declare function document(id: ResourceId): SingleRequest; export interface Collection extends CollectionDoc { data: Team[]; } export interface Single extends SingleDoc { data: Team | null; } export interface Team extends Resource { name: string; about: { description: string; }; state: State; events: Events & { suspension: SuspensionEvent; }; billing: Billing.Profile; owner: ResourceId; meta?: { members?: { total: number; admins: number; developers: number; analysts: number; }; role?: string; }; } export declare type TeamState = "live" | "deleting" | "deleted"; export interface NewParams { name: string; about: { description: string; }; } export interface UpdateParams { name?: string; about?: { description?: string; }; } export declare type SingleAction = "apply"; export declare class CollectionRequest { private static target; static get(query?: QueryParams): Promise>; static create(doc: NewParams, query?: QueryParams): Promise>; static invitations(): Invites.CollectionRequest; static invitations(id: ResourceId): Invites.SingleRequest; } export declare class SingleRequest { private id; private target; constructor(id: ResourceId); get(query?: QueryParams): Promise>; update(doc: UpdateParams, query?: QueryParams): Promise>; delete(query?: QueryParams): Promise>; changeTier(tier: string): Promise>>; task(action: SingleAction, contents?: object, query?: QueryParams): Promise>>; members(): MembersRequest; members(id: ResourceId): MemberRequest; invitations(): Invites.CollectionRequest; invitations(id: ResourceId): Invites.SingleRequest; } export declare class MembersRequest { private target; constructor(teamId: ResourceId); get(query?: QueryParams): Promise>; } export declare class MemberRequest { private target; constructor(teamId: ResourceId, memberId: ResourceId); delete(query?: QueryParams): Promise>; }