export interface RosterBot { larkAppId: string; name: string; cliId: string; capability: string | null; hasTeamRole: boolean; deployment: { id: string; name: string; local: boolean; stale: boolean; }; } export interface RosterDeployment { id: string; name: string; local: boolean; botCount: number; stale: boolean; } export interface Team { kind: 'local' | 'remote'; key: string; teamId: string; label: string; sub: string; ok: boolean; error?: string; hubUrl?: string; deployments: RosterDeployment[]; bots: RosterBot[]; } export interface TeamFilters { query: string; cliId: string; hasCapability: boolean; hasRole: boolean; } export type TeamApiResult = DashboardApiResult; export interface FeedbackPolicyLayer { enabled?: boolean; audience?: 'requester'; visibleSemantics?: unknown[]; buttons?: unknown[]; negativeFollowup?: { reasons?: unknown[]; comment?: { enabled?: boolean; required?: boolean; placeholder?: string; maxLength?: number; }; }; allowReselect?: boolean; } export interface HostedTeamsResponse { ok?: boolean; deployment?: { deploymentId?: string; ownerName?: string; ownerUnionId?: string; }; suggestedHubUrl?: string; teams?: any[]; } export interface RemoteRosterResponse { memberships?: any[]; } export interface AutoBindCandidate { unionId: string; name?: string; } export interface AutoBindResponse { ok?: boolean; owner?: { name?: string; unionId?: string; }; needChoice?: boolean; candidates?: AutoBindCandidate[]; error?: string; } export { jget, jpost, jput, jsend }; export declare function fetchHostedTeams(): Promise>; export declare function fetchRemoteRoster(): Promise>; export declare function updateLocalBotCapability(larkAppId: string, capability: string): Promise; export declare function fetchLocalBotRole(larkAppId: string): Promise>; export declare function autoBindIdentity(unionId?: string): Promise>; export declare function removeHostedTeamMember(teamId: string, deploymentId: string): Promise; export declare function createFederatedGroup(teamId: string, name: string, larkAppIds: string[]): Promise; export declare function createRemoteGroup(hubUrl: string | undefined, teamId: string, name: string, larkAppIds: string[]): Promise; export declare function createHostedTeam(name: string): Promise; export declare function deleteHostedTeam(teamId: string): Promise; export declare function updateHostedTeamFeedback(teamId: string, feedback: FeedbackPolicyLayer | null): Promise>; export declare function generateLocalInvite(teamId: string): Promise>; export declare function joinRemoteTeam(hubUrl: string, inviteCode: string): Promise; export declare function allTeams(localTeams: Team[], remoteTeams: Team[]): Team[]; export declare function pickedSet(map: Map>, key: string): Set; export declare function botMatchesTeamFilters(bot: RosterBot, filters: TeamFilters): boolean; export declare function teamCliOptions(teams: Team[]): string[]; export declare function mapHostedTeams(body: HostedTeamsResponse, tr: (key: string, params?: Record) => string): Team[]; export declare function mapRemoteTeams(body: RemoteRosterResponse, tr: (key: string, params?: Record) => string): Team[]; export declare function updateTeamBotCapability(teams: Team[], larkAppId: string, capability: string): Team[]; import { jget, jpost, jput, jsend, type DashboardApiResult } from './dashboard-api.js'; //# sourceMappingURL=team-federation.d.ts.map