import { IListVirtualDelegate } from "../../../../base/browser/ui/list/list.js"; import { IDataSource, ITreeRenderer } from "../../../../base/browser/ui/tree/tree.js"; import { CancellationToken } from "../../../../base/common/cancellation.js"; import { Event } from "../../../../base/common/event.js"; import { FuzzyScore } from "../../../../base/common/filters.js"; import { IDisposable } from "../../../../base/common/lifecycle.js"; import { URI } from "../../../../base/common/uri.js"; import { IEditorOptions } from "../../../../platform/editor/common/editor.js"; import { IWorkbenchDataTreeOptions } from "../../../../platform/list/browser/listService.js"; import { IEditorPane } from "../../../common/editor.js"; export declare enum OutlineTarget { OutlinePane = 1, Breadcrumbs = 2, QuickPick = 4 } export interface IOutlineCreator

{ matches(candidate: IEditorPane): candidate is P; createOutline(editor: P, target: OutlineTarget, token: CancellationToken): Promise | undefined>; } export interface IBreadcrumbsOutlineElement { readonly element: E; readonly label: string; } export interface IBreadcrumbsDataSource { getBreadcrumbElements(): readonly IBreadcrumbsOutlineElement[]; } export interface IOutlineComparator { compareByPosition(a: E, b: E): number; compareByType(a: E, b: E): number; compareByName(a: E, b: E): number; } export interface IQuickPickOutlineElement { readonly element: E; readonly label: string; readonly iconClasses?: string[]; readonly ariaLabel?: string; readonly description?: string; } export interface IQuickPickDataSource { getQuickPickElements(): IQuickPickOutlineElement[]; } export interface IOutlineListConfig { readonly breadcrumbsDataSource: IBreadcrumbsDataSource; readonly treeDataSource: IDataSource, E>; readonly delegate: IListVirtualDelegate; readonly renderers: ITreeRenderer[]; readonly comparator: IOutlineComparator; readonly options: IWorkbenchDataTreeOptions; readonly quickPickDataSource: IQuickPickDataSource; } export interface OutlineChangeEvent { affectOnlyActiveElement?: true; } export interface IOutline { readonly uri: URI | undefined; readonly config: IOutlineListConfig; readonly outlineKind: string; readonly isEmpty: boolean; readonly activeElement: E | undefined; readonly onDidChange: Event; reveal(entry: E, options: IEditorOptions, sideBySide: boolean, select: boolean): Promise | void; preview(entry: E): IDisposable; captureViewState(): IDisposable; dispose(): void; } export declare enum OutlineConfigKeys { "icons" = "outline.icons", "collapseItems" = "outline.collapseItems", "problemsEnabled" = "outline.problems.enabled", "problemsColors" = "outline.problems.colors", "problemsBadges" = "outline.problems.badges" } export declare enum OutlineConfigCollapseItemsValues { Collapsed = "alwaysCollapse", Expanded = "alwaysExpand" }