export { OwnershipSelector } from "./connection-ownership-selector.js"; import { type ReactNode, type RefObject } from "react"; import { DEFAULT_CONNECTION_OWNERSHIP, type ConnectionHealth } from "../../lib/capabilities.js"; import { type AnalyticsAction } from "../../../ui/analytics-actions.js"; import type { CapabilityCatalogItem, ConnectionMetadata, ConnectionOwnership, SocialConnection } from "../../types.js"; export type ConnectAction = { type: "enable"; item: CapabilityCatalogItem; } | { type: "install_skill"; item: CapabilityCatalogItem; } | { type: "remove_skill"; item: CapabilityCatalogItem; } | { type: "social_oauth"; item: CapabilityCatalogItem; provider: "x" | "reddit"; ownership: ConnectionOwnership; } | { type: "disconnect_social"; item: CapabilityCatalogItem; connectionId: string; } | { type: "fiken_api_token"; item: CapabilityCatalogItem; apiToken: string; connectionId: string | null; } | { type: "fiken_disconnect"; item: CapabilityCatalogItem; connectionId: string; } | { type: "fiken_oauth"; item: CapabilityCatalogItem; connectionId: string | null; } | { type: "oauth"; item: CapabilityCatalogItem; ownership: ConnectionOwnership; } | { type: "api_key"; item: CapabilityCatalogItem; ownership: ConnectionOwnership; headers: Record; } | { type: "reconnect_oauth"; item: CapabilityCatalogItem; connectionId: string | null; ownership: ConnectionOwnership; /** The account's own workspace when it was connected in another one. */ connectionWorkspaceId?: string | undefined; } | { type: "add_oauth_account"; item: CapabilityCatalogItem; ownership: ConnectionOwnership; } | { type: "remove_connection"; item: CapabilityCatalogItem; connection: Pick; } | { type: "reconnect_api_key"; item: CapabilityCatalogItem; connectionId: string | null; ownership: ConnectionOwnership; headers: Record; } | { type: "disconnect"; item: CapabilityCatalogItem; }; export { DEFAULT_CONNECTION_OWNERSHIP }; export declare function CapabilityDetailSheet({ workspaceId, item, health, logoSrc, open, onOpenChange, restoreFocusRef, restoreFocusFallbackRef, busy, errorMessage, socialConnections, canManageSocial, canManageSkills, onAction, }: { workspaceId?: string | undefined; item: CapabilityCatalogItem | null; health: ConnectionHealth; logoSrc: string | null; open: boolean; onOpenChange: (open: boolean) => void; restoreFocusRef?: RefObject | undefined; restoreFocusFallbackRef?: RefObject | undefined; busy: boolean; errorMessage: string | null; socialConnections?: SocialConnection[] | undefined; canManageSocial?: boolean | undefined; canManageSkills?: boolean | undefined; onAction: (action: ConnectAction) => void; }): import("react").JSX.Element; export declare function DetailBody({ workspaceId, item, inline, setupOnly, showIdentity, onCancel, health, logoSrc, busy, errorMessage, socialConnections, canManageSocial, canManageSkills, onAction, onRetryAuthInspection, }: { workspaceId?: string | undefined; item: CapabilityCatalogItem; inline?: boolean | undefined; /** Chat setup must not expose disconnect/removal actions, regardless of layout. */ setupOnly?: boolean | undefined; /** The containing dialog may already render the provider identity. */ showIdentity?: boolean | undefined; onCancel?: (() => void) | undefined; health: ConnectionHealth; logoSrc: string | null; busy: boolean; errorMessage: string | null; socialConnections?: SocialConnection[] | undefined; canManageSocial: boolean; canManageSkills?: boolean | undefined; onAction: (action: ConnectAction) => void; onRetryAuthInspection?: (() => void) | undefined; }): import("react").JSX.Element; export declare function SocialConnectorControls({ item, provider, connections, ownership, onOwnershipChange, busy, canManage, onAction, setupOnly, }: { item: CapabilityCatalogItem; provider: "x" | "reddit"; connections: SocialConnection[]; ownership: ConnectionOwnership; onOwnershipChange: (ownership: ConnectionOwnership) => void; busy: boolean; setupOnly?: boolean | undefined; canManage: boolean; onAction: (action: ConnectAction) => void; }): import("react").JSX.Element; /** * Connect / reconnect / disconnect controls for the first-party Fiken * connector. Phase 1 is workspace-owned only, so there is no ownership * selector; the token is verified against Fiken before it is stored. */ export declare function FikenConnectorControls({ item, health, keyPageUrl, busy, onAction, setupOnly, oauthAvailable, tokenAvailable, }: { item: CapabilityCatalogItem; health: ConnectionHealth; keyPageUrl: string | null; busy: boolean; setupOnly?: boolean | undefined; oauthAvailable?: boolean | undefined; tokenAvailable?: boolean | undefined; onAction: (action: ConnectAction) => void; }): import("react").JSX.Element; export declare function CredentialForm({ fields, itemName, keyPageUrl, submitLabel, submitIcon, busy, onSubmit, onCancel, compact, analytics, }: { fields: { name: string; label: string; }[]; itemName: string; keyPageUrl: string | null; submitLabel: string; submitIcon: ReactNode; busy: boolean; onCancel?: (() => void) | undefined; compact?: boolean | undefined; /** Closed analytics label for the submit control; omit for reconnects. */ analytics?: AnalyticsAction | undefined; onSubmit: (headers: Record) => void; }): import("react").JSX.Element; export declare function ConnectionStatus({ item, health, }: { item: CapabilityCatalogItem; health: ConnectionHealth; }): import("react").JSX.Element;