export declare enum IntegrationCategory { Alerting = "alerting", ApplicationMonitoring = "application_monitoring", InfrastructureMonitoring = "infrastructure_monitoring", CI_CD = "ci_cd", InfrastructureManagement = "infrastructure_management", CostMonitoring = "cost_monitoring", TicketOps = "ticket_ops" } export type Instance = { resolveConnection: (connectionId: string) => Promise; createConnection: (conn: Integration) => Promise; updateConnection: (id: string, updates: any) => Promise; validateConnection: (conn: Integration) => Promise; buildInstallUrl: (context: AtlassianInstallContext) => Promise; handleInstallCallback: (payload: AtlassianCallbackPayload) => Promise; buildPagerDutyInstallUrl: (context: PagerDutyInstallContext) => Promise; handlePagerDutyInstallCallback: (payload: PagerDutyCallbackPayload) => Promise; buildSlackInstallUrl: (context: SlackInstallContext) => Promise; handleSlackInstallCallback: (payload: SlackCallbackPayload) => Promise; getValidAccessToken: (context: OAuthTokenContext) => Promise; invalidateTokens: (context: OAuthTokenContext) => Promise; }; export declare enum IntegrationProvider { Sentry = "sentry", Slack = "slack", Datadog = "datadog", Grafana = "grafana", Prometheus = "prometheus", Github = "github", K8s = "k8s", Atlantis = "atlantis", Cost_Analyzer = "cost-analyzer", K8S_Dashboard = "k8s-dashboard", Argo_CD = "argocd", Cert_Manager = "cert-manager", K8S_MCP_SERVER = "k8s-mcp-server", NGINX_INGRESS = "nginx-ingress", Elk = "elk", Jira = "jira", Jsm = "jsm", Confluence = "confluence", Bitbucket = "bitbucket", Loki = "loki", Tempo = "tempo", Mimir = "mimir", Groundcover = "groundcover", VictoriaMetrics = "victoriametrics", VictoriaLogs = "victorialogs", VictoriaTraces = "victoriatraces", PagerDuty = "pagerduty", Zenduty = "zenduty" } export declare enum StorageProvider { MongoDB = "mongodb", Redis = "redis" } export interface ApiKeyAuth { host_endpoint: string; api_token: string; refresh_token?: string; token_type: "long_lived" | "short_lived"; } export interface BasicAuth { host_endpoint: string; username: string; password: string; header_keys: { username: string; password: string; }; } export interface OAuthAuth { host_endpoint: string; client_id: string; client_secret: string; } export interface MappedCredentialsAuth { host_endpoint: string; profile_id?: string; api_key?: string; application_key?: string; [key: string]: unknown; } export type IntegrationAuth = ApiKeyAuth | BasicAuth | OAuthAuth | MappedCredentialsAuth; export interface ITokenCacheStorage { getToken(key: string): Promise; setToken(key: string, data: CachedAccessToken, ttlSeconds: number): Promise; deleteToken(key: string): Promise; acquireLock(key: string, ttlSeconds: number, ownerToken?: string): Promise; releaseLock(key: string, ownerToken?: string): Promise; extendLock?(key: string, ttlSeconds: number, ownerToken: string): Promise; getRawTokenString?(key: string): Promise; setRawTokenString?(key: string, value: string, ttlSeconds: number): Promise; } export interface CachedAccessToken { access_token: string; token_type?: string; expires_at: number; scope?: string; scopes?: string[]; } export interface ResourceDependency { targetResourceId: string; targetResourceType: string; direction: string; label: string[]; } export interface Integration { integration_id: string; provider: IntegrationProvider; account_id: string; version: string; category: IntegrationCategory; name: string; config: any; auth: IntegrationAuth; temp_storage_path: string; cluster_id?: string; application_id?: string; is_addon?: boolean; created_by: string; dependencies: ResourceDependency[]; created_at?: Date; updated_at?: Date; } export interface ConnectionMetadata { connectionId: string; provider: string; authType: IntegrationAuth; credentials: Record; metadata?: Record; updatedAt: Date; expiresAt?: Date; } export interface SentryResolvedConnection { hostname: string; headers: Record; metadata?: Record; orgSlug: string; projects: string[]; } export interface SentryResolve { hostname: string; organization_slug: string; project_slugs: string[]; auth_token: string; } export interface SlackResolve { webhook_url: string; channel: string; } export interface SlackResolvedRuntime { integration_id: string; provider: IntegrationProvider.Slack; account_id: string; host_endpoint: string; headers: Record; auth_context: { token_type: "long_lived" | "short_lived"; scopes: string[]; }; metadata: { team_id?: string; team_name?: string; workspace_domain?: string; }; } export interface GrafanaResolve { api_key: string; url: string; } export interface PrometheusResolve { url: string; auth_token: string; } export interface ElkResolve { hostname: string; auth_token: string; } export interface ResolvedHttpAuthRuntime { hostname: string; host_endpoint: string; headers: Record; query?: Record; metadata?: Record; auth_context: { strategy: "mapped_credentials"; credential_keys: string[]; }; } export interface DatadogResolvedRuntime extends ResolvedHttpAuthRuntime { } export interface ZendutyResolvedRuntime extends ResolvedHttpAuthRuntime { metadata: { integration_key_present: boolean; generic_webhook_url_present: boolean; }; } export type AtlassianProductProvider = IntegrationProvider.Jira | IntegrationProvider.Confluence | IntegrationProvider.Jsm | IntegrationProvider.Bitbucket; export interface AtlassianScopeSource { provider: AtlassianProductProvider; scopes: string[]; } export interface AtlassianIdentity { account_id: string; cluster_id?: string; application_id?: string; created_by?: string; is_addon?: boolean; } export interface AtlassianSDKOptions { clientId: string; clientSecret: string; redirectUri: string; scopes?: string[]; authorizeBaseUrl?: string; tokenUrl?: string; accessibleResourcesUrl?: string; cacheTtlFallbackSeconds?: number; identityResolver?: (userId: string) => Promise; } export interface SlackIdentity { account_id: string; cluster_id?: string; application_id?: string; created_by?: string; is_addon?: boolean; } export interface SlackSDKOptions { clientId: string; clientSecret: string; redirectUri: string; encryptionSecretKey: string; scopes?: string[]; userScopes?: string[]; authorizeBaseUrl?: string; tokenUrl?: string; teamInfoUrl?: string; cacheTtlFallbackSeconds?: number; identityResolver?: (userId: string) => Promise; version?: string; integrationNamePrefix?: string; } export interface PagerDutyIdentity { account_id: string; workspace_id?: string; cluster_id?: string; application_id?: string; created_by?: string; is_addon?: boolean; } export interface PagerDutySDKOptions { clientId: string; clientSecret: string; redirectUri: string; scopes?: string[]; authorizeBaseUrl?: string; tokenUrl?: string; apiBaseUrl?: string; stateSecret?: string; cacheTtlFallbackSeconds?: number; identityResolver?: (userId: string, context?: { account_id?: string; workspace_id?: string; provider?: string; }) => Promise; version?: string; integrationNamePrefix?: string; } export interface SDKInitOptions { cacheStorage?: ITokenCacheStorage; atlassian?: AtlassianSDKOptions; slack?: SlackSDKOptions; pagerduty?: PagerDutySDKOptions; } export interface AtlassianInstallContext { user_id: string; account_id?: string; provider: AtlassianProductProvider; sibling_integration_id?: string; scopes?: string[]; } export interface AtlassianInstallUrlResult { url: string; state: string; provider: AtlassianProductProvider; scopes: string[]; sibling_integration_ids: string[]; } export interface AtlassianCallbackPayload { code: string; state: string; provider?: AtlassianProductProvider; sibling_integration_id?: string; cluster_id?: string; application_id?: string; is_addon?: boolean; version?: string; } export interface AtlassianTokenContext { integration_id: string; } export interface OAuthTokenContext extends AtlassianTokenContext { } export interface JiraTokenContext extends AtlassianTokenContext { } export interface ConfluenceTokenContext extends AtlassianTokenContext { } export interface AtlassianCallbackResult { provider: AtlassianProductProvider; site_url: string; cloud_id: string; scopes: string[]; integration: Integration; sibling_integration_ids: string[]; } export interface SlackInstallContext { user_id: string; account_id?: string; scopes?: string[]; user_scopes?: string[]; state?: string; } export interface SlackInstallUrlResult { url: string; state: string; provider: IntegrationProvider.Slack; scopes: string[]; user_scopes: string[]; } export interface SlackCallbackPayload { code: string; state: string; version?: string; } export interface SlackCallbackResult { provider: IntegrationProvider.Slack; team_id: string; team_name: string; workspace_domain: string; scopes: string[]; integration: Integration; access_token: string; refresh_token: string; expires_in?: number; } export interface PagerDutyInstallContext { user_id: string; account_id?: string; workspace_id?: string; scopes?: string[]; } export interface PagerDutyInstallUrlResult { url: string; state: string; provider: IntegrationProvider.PagerDuty; scopes: string[]; } export interface PagerDutyCallbackPayload { code: string; state: string; subdomain?: string; version?: string; } export interface PagerDutyUserProfile { id?: string; summary?: string; name?: string; email?: string; html_url?: string; type?: string; [key: string]: unknown; } export interface PagerDutyCallbackResult { provider: IntegrationProvider.PagerDuty; pagerduty_user_id: string; pagerduty_user_email?: string; scopes: string[]; integration: Integration; } export interface AtlassianResolvedRuntime { integration_id: string; provider: AtlassianProductProvider; account_id: string; site_url: string; cloud_id: string; scopes: string[]; host_endpoint: string; refresh_token: string; token_type: "long_lived" | "short_lived"; base_url: string; headers: Record; auth_context: { token_type: "long_lived" | "short_lived"; scopes: string[]; }; metadata: { site_url: string; cloud_id: string; }; } export interface PagerDutyResolvedRuntime { integration_id: string; provider: IntegrationProvider.PagerDuty; account_id: string; host_endpoint: string; headers: Record; auth_context: { strategy: "oauth_authorization_code"; token_type: "long_lived" | "short_lived"; scopes: string[]; }; metadata: { pagerduty_user_id?: string; pagerduty_user_email?: string; pagerduty_user_name?: string; }; } export interface JiraResolve extends AtlassianResolvedRuntime { provider: IntegrationProvider.Jira; } export interface ConfluenceResolve extends AtlassianResolvedRuntime { provider: IntegrationProvider.Confluence; } export interface BitbucketResolve extends AtlassianResolvedRuntime { provider: IntegrationProvider.Bitbucket; } export interface K8sResolve { host_endpoint: string; token: string; ttl: number; user: { deploymentId: string; username: string; }; } export interface LokiResolve { host_endpoint: string; api_token: string; tenant_id?: string; } export interface TempoResolve { host_endpoint: string; api_token: string; } export interface MimirResolve { host_endpoint: string; api_token: string; tenant_id?: string; } export interface GroundcoverResolve { api_token: string; backend_id: string; timezone: string; host_endpoint: string; headers: { Authorization: string; "X-Backend-Id": string; "X-Timezone": string; }; } export interface VictoriametricsResolve { host_endpoint: string; api_token: string; tenant_id?: string; } export interface VictorialogsResolve { host_endpoint: string; api_token: string; tenant_id?: string; } export interface VictoriatracesResolve { host_endpoint: string; api_token: string; tenant_id?: string; }