import type { ArkmeTeam } from './types.js'; /** Team membership supplies identity candidates. It does not grant teammates group access. */ export interface TeamGroupContext { state: 'ready' | 'backend_pending'; teams: Array; /** Unknown on current backend; a future roster binding suppresses identity choice. */ groupJoinAt?: number; membershipPolicy?: 'independent' | 'team_roster' | 'unknown'; } export interface TeamGroupPending { state: 'backend_pending'; } export declare const TEAM_GROUP_PENDING_TEXT = "\u540E\u7AEF\u63A5\u53E3\u5F00\u53D1\u4E2D\uFF0C\u5F00\u53D1\u5B8C\u6210\u540E\u6B64\u529F\u80FD\u5B8C\u6574\u53EF\u7528\u3002"; export declare function canChooseTeamGroupIdentity(value?: TeamGroupContext): boolean; /** Only public presentation. Never includes a team's private member list or settings. */ export interface TeamPublicCard { name: string; jotmoId: string; avatar?: ArkmeTeam['avatar']; contact: { state: 'available'; publicRef: string; } | { state: 'disabled'; } | { state: 'unavailable'; }; description?: string; navigation?: { kind: 'contact' | 'inbox' | 'none'; teamRef?: string; }; } export interface TeamRepresentationSelection { teamRef: string; membershipKind: 'owner' | 'member'; membershipRevision: number; groupJoinAt: number; } export interface TeamRepresentationSnapshot extends TeamRepresentationSelection { name: string; jotmoId: string; } export interface TeamGroupIdentity { team: ArkmeTeam; selection: TeamRepresentationSelection; } export interface TeamRepresentationSendOptions { representation?: TeamRepresentationSelection; sendAtMillis?: number; } //# sourceMappingURL=team-group-contract.d.ts.map