import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import type { InvitationService } from "../invitations.js"; import type { PlanCatalog } from "../plans.js"; import type { BillingAdapter } from "../types.js"; export interface MemberToolOptions { plans?: PlanCatalog; resolvePlan?: (orgId: string) => Promise; /** The invitation service (`createWorkOSInvitations`). Without it the three invitation * tools do not register — there is nowhere to put the record. */ invitations?: InvitationService; /** Roles this deployment invites into. Advertised in the tool description so an agent * does not have to guess a slug, and validated, so it cannot invent one. */ roles?: readonly string[]; } /** * Register the member tools this adapter and this deployment can actually serve. * * Two gates, the same pair the seat and top-up groups use: the ADAPTER decides whether the * question is answerable (`listMembers` to read, `setMemberRole`/`removeMember` to write) and * the DEPLOYMENT decides whether invitations exist at all. A tool that could only ever answer * "not supported" is the false statement this project keeps deleting. */ export declare function registerMemberTools(server: McpServer, adapter: BillingAdapter, opts?: MemberToolOptions): void; /** * The workspace itself: what it is called, and stopping it. * * `closeWorkspace` has existed and been bound for a while and reached no tool, so the one * operation with real money on the other side of it — a subscription that keeps charging a * card for a workspace nobody can see — was the app's to remember to call. Renaming had no * home at all. */ export declare function registerWorkspaceTools(server: McpServer, adapter: BillingAdapter): void; //# sourceMappingURL=members.d.ts.map