import { DEFAULT_MEMBERSHIP_LIMIT, SEAT_RESOURCE_TYPES } from "./entitlement-constants.js";
import { AgentsRunDatabaseClient } from "../db/runtime/runtime-client.js";

//#region src/auth/entitlements.d.ts
declare function roleMatchesAdminBucket(role: string): boolean;
declare function resolveEntitlement(db: AgentsRunDatabaseClient, orgId: string, resourceType: string): Promise<number | null>;
declare function countSeatsByRole(db: AgentsRunDatabaseClient, orgId: string, role: string): Promise<number>;
declare function enforcePerRoleSeatLimit(db: AgentsRunDatabaseClient, orgId: string, role: string, onceVerified?: () => Promise<void>): Promise<void>;
declare function resolveTotalMembershipLimit(db: AgentsRunDatabaseClient, orgId: string, hasServiceAccount: boolean): Promise<number>;
//#endregion
export { DEFAULT_MEMBERSHIP_LIMIT, SEAT_RESOURCE_TYPES, countSeatsByRole, enforcePerRoleSeatLimit, resolveEntitlement, resolveTotalMembershipLimit, roleMatchesAdminBucket };