import type { ProfileId } from '../profiles/types.js'; export type EnvVarSpec = { name: string; label: string; description: string; secret: boolean; obtainUrl?: string; }; export type McpIntegrationConfig = { transport: 'stdio'; command: string; args: string[]; env?: Record; } | { transport: 'http'; url: string; requiresAuth: boolean; authType: 'none' | 'oauth' | 'pat'; apiTokenEnvVar?: string; oauthStrategy?: 'proxy' | 'native'; opencodeOAuth?: { clientId: string; redirectUri: string; /** OAuth scopes to request. Required when the server rejects the PKCE library's generic default ('openid profile'). */ scope?: string; /** RFC 8707 resource indicator some authorization servers require to scope the token (e.g. Slack). */ resource?: string; }; }; export type SetupGuide = { steps: string[]; learnMore: string; }; export type McpIntegration = { id: string; label: string; description?: string; clients?: string[]; contentScope?: string; refreshCadence?: string; guidance?: string; claudePlugin?: { id: string; scope: 'user' | 'project' | 'local'; }; profiles: Set; config: McpIntegrationConfig; envVars: EnvVarSpec[]; setupGuide: SetupGuide; }; export declare function findMcpIntegration(id: string): McpIntegration | undefined; export declare const MCP_INTEGRATIONS: McpIntegration[];