import type { ToolDefinition } from "./types.js"; /** * `DELETE /api/v1/repositories/:repository_id/members/:id` as a tool — shipped * in the platform (`specguard/config/routes.rb`, * `Api::V1::UserRepositoryMembersController#destroy`, SPGD-875). * * == The two documented asymmetries, stated BEFORE the call * * Revoking a membership deliberately LEAVES that member's minted CI keys * authenticating (`User has_many :created_api_keys, dependent: :nullify`) — * the lever for those is the API-keys surface, not this one. And * self-revocation is permitted: it is the caller's own access to give up, and * after it the next request to these routes answers 404, not 403 (a former * member is a non-member). Both belong in the description because they are * the facts an agent must know before it commits to the call. * * == The owner row cannot arrive * * An owner membership is structurally impossible * (`RepositoryMembership#user_is_not_the_owner`), so "cannot remove the owner" * is a model invariant, not a guard this bridge re-checks. * * == 204 with no body * * The same empty-body success `remove_repository` and * `revoke_repository_api_key` serve; the same reason `deleteJson` exists * rather than routing a 204 through `requestJson`'s JSON parse. */ declare const removeRepositoryMember: ToolDefinition; export default removeRepositoryMember;