import * as API from "../../common/api"; import { CollectionDoc, Events, QueryParams, Resource, ResourceId, SingleDoc, Time } from "../../common/structures"; import * as Roles from "./roles"; import * as Teams from "./teams"; export declare function document(): CollectionRequest; export declare function document(invite: undefined, team: ResourceId): CollectionRequest; export declare function document(invite: ResourceId): SingleRequest; export interface Collection extends CollectionDoc { data: Invite[]; includes?: { teams: { [key: string]: Teams.Team; }; }; } export interface Single extends SingleDoc { data: Invite | null; } export interface Invite extends Resource { team: ResourceId; inviter: ResourceId; invitee: ResourceId; events: Events; accepted: Time; declined: Time; revoked: Time; role: Roles.Names; } export interface NewParams { invitee: ResourceId; role: Roles.Names; } export declare class CollectionRequest { private target; constructor(teamId?: ResourceId); get(query?: QueryParams): Promise>; create(doc: NewParams, query?: QueryParams): Promise>; } export declare class SingleRequest { private target; constructor(teamId?: ResourceId, inviteId?: ResourceId); get(query?: QueryParams): Promise>; accept(query?: QueryParams): Promise>; decline(query?: QueryParams): Promise>; action(action: "accept" | "decline", query?: QueryParams): Promise>; }