import { Event } from "../../../common/event.js"; import { IDisposable } from "../../../common/lifecycle.js"; import { MarkdownActionHandler } from "../../markdownRenderer.js"; import { IContextViewProvider } from "../contextview/contextview.js"; import { IListStyles } from "../list/listWidget.js"; import { Widget } from "../widget.js"; export interface ISelectBoxDelegate extends IDisposable { readonly onDidSelect: Event; setOptions(options: ISelectOptionItem[], selected?: number): void; select(index: number): void; setAriaLabel(label: string): void; focus(): void; blur(): void; setFocusable(focus: boolean): void; setEnabled(enabled: boolean): void; render(container: HTMLElement): void; } export interface ISelectBoxOptions { useCustomDrawn?: boolean; ariaLabel?: string; ariaDescription?: string; minBottomMargin?: number; optionsAsChildren?: boolean; } export interface ISelectOptionItem { text: string; detail?: string; decoratorRight?: string; description?: string; descriptionIsMarkdown?: boolean; readonly descriptionMarkdownActionHandler?: MarkdownActionHandler; isDisabled?: boolean; isSeparator?: boolean; } export declare const SeparatorSelectOption: Readonly; export interface ISelectBoxStyles extends IListStyles { readonly selectBackground: string | undefined; readonly selectListBackground: string | undefined; readonly selectForeground: string | undefined; readonly decoratorRightForeground: string | undefined; readonly selectBorder: string | undefined; readonly selectListBorder: string | undefined; readonly focusBorder: string | undefined; } export declare const unthemedSelectBoxStyles: ISelectBoxStyles; export interface ISelectData { selected: string; index: number; } export declare class SelectBox extends Widget implements ISelectBoxDelegate { private selectBoxDelegate; constructor(options: ISelectOptionItem[], selected: number, contextViewProvider: IContextViewProvider, styles: ISelectBoxStyles, selectBoxOptions?: ISelectBoxOptions); get onDidSelect(): Event; setOptions(options: ISelectOptionItem[], selected?: number): void; select(index: number): void; setAriaLabel(label: string): void; focus(): void; blur(): void; setFocusable(focusable: boolean): void; setEnabled(enabled: boolean): void; render(container: HTMLElement): void; }