import type { McpClassification, McpCredentials, McpEgress, McpServer, McpSupplyChain } from "./servers.js"; declare const OAUTH_SCOPE = "api://agentgateway/mcp_access"; export interface GatewayRbacRole { idpGroup: string; allowedServers: string[]; source: "catalog" | "org-policy" | "admin"; criteria: string; } export interface GatewayRbacServer { type: McpServer["type"]; classification: McpClassification; egress: McpEgress; credentials: McpCredentials; supplyChain: McpSupplyChain; } export interface GatewayRbacConfig { schemaVersion: 1; gateway: { baseUrl: string; oauthScope: typeof OAUTH_SCOPE; }; boundary: "config-only"; roles: GatewayRbacRole[]; catalog: Record; generatedFrom: { catalogServers: string[]; orgPolicyAllowedServers: string[]; orgPolicyIgnoredServers: string[]; }; } interface GatewayRbacOptions { orgAllowedServers?: readonly string[]; } export declare function gatewayRbacConfig(gateway: string, servers: Record, options?: GatewayRbacOptions): GatewayRbacConfig; /** * Identity-aware MCP gateway setup, emitted as a `doc` action for the `remote` * scope. Every line here is guidance for a human operator: the harness never * registers an OIDC app, never mints a token, never dials the gateway. The * BOUNDARY keeps all of this as text so an autonomous run cannot provision SSO. * * `gateway` is the canonical agentgateway base URL clients are pointed at; it is * interpolated into copy-paste commands only — it is not contacted. */ export declare function gatewayDoc(config: GatewayRbacConfig, hostedServers?: string[]): string; export {};