import * as React from '@theia/core/shared/react'; import { PreferenceService } from '@theia/core'; import { Message, ReactWidget } from '@theia/core/lib/browser'; import { AiConfigurationService } from '@theia/ai-core'; import { AiConfigurationCategoryRegistry } from '@theia/ai-core-ui/lib/browser/ai-configuration/ai-configuration-category-registry'; import { AiConfigurationSelectionModel } from '@theia/ai-core-ui/lib/browser/ai-configuration/ai-configuration-selection-model'; import { AiConfigurationCategory, AiConfigurationRenderContext, AiConfigurationScope, AiConfigurationSelection } from '@theia/ai-core-ui/lib/browser/ai-configuration/ai-configuration-category'; export declare class AiConfigurationDetailWidget extends ReactWidget { static readonly ID = "ai-configuration-detail"; /** Frames a pending search highlight waits for its target row to be mounted before it is dropped. */ static readonly HIGHLIGHT_RETRY_FRAMES = 10; protected readonly registry: AiConfigurationCategoryRegistry; protected readonly selectionModel: AiConfigurationSelectionModel; protected readonly aiConfigurationService: AiConfigurationService; protected readonly preferenceService: PreferenceService; /** Scope every row on the page reads from and writes to; per-scope editing is not wired up yet. */ protected scope: AiConfigurationScope; protected resetScroll: boolean; protected pendingHighlight?: AiConfigurationSelection['highlight']; /** Frames a pending highlight has already waited for its target row; see {@link applyScrollAndHighlight}. */ protected pendingHighlightFrames: number; protected init(): void; protected onSelectionChanged(): void; protected createRenderContext(): AiConfigurationRenderContext; protected render(): React.ReactNode; /** * Selects the category whose item just disappeared. Deferred to a microtask: this runs during render, and * selecting synchronously would re-enter the widget's update while React is still committing this one. */ protected selectCategoryAfterItemLoss(category: AiConfigurationCategory): void; protected renderScopeBanner(): React.ReactNode; protected renderBody(category: AiConfigurationCategory, selection: AiConfigurationSelection, ctx: AiConfigurationRenderContext): React.ReactNode; /** Shared in-pane header for a category-level page: the category icon, name and optional description. */ protected renderCategoryHeader(category: AiConfigurationCategory): React.ReactNode; protected renderComingSoon(category: AiConfigurationCategory): React.ReactNode; protected renderPlaceholder(): React.ReactNode; protected onUpdateRequest(msg: Message): void; protected applyScrollAndHighlight(): void; /** * Vertically centers `element` within `body` by scrolling that container and nothing else. * * Deliberately not `Element.scrollIntoView`: that scrolls *every* scrollable ancestor to satisfy the * requested alignment, and `overflow: hidden` does not prevent programmatic scrolling. When a row cannot * be centered inside the body alone, it therefore nudges the `overflow: hidden` containers above this * widget, which have no scrollbar for the user to scroll back — shifting the whole shell, pushing the menu * bar out of view and leaving a gap below the status bar. */ protected centerInBody(body: HTMLElement, element: HTMLElement): void; } //# sourceMappingURL=ai-configuration-detail-widget.d.ts.map