import type { ComponentChild } from 'preact'; import { Widget, type WidgetProps, type WidgetPlacement, type Deck } from '@deck.gl/core'; import type { GeoJsonEditModeConstructor, GeoJsonEditModeType } from "../edit-modes/geojson-edit-mode.js"; export type EditModeTrayWidgetModeOption = { /** * Optional identifier for the mode button. * If not provided, one will be inferred from the supplied mode. */ id?: string; /** Edit mode constructor or instance that the button should activate. */ mode: GeoJsonEditModeConstructor | GeoJsonEditModeType; /** * The icon or element rendered inside the button. * A simple string can also be supplied for text labels. */ icon?: ComponentChild; /** Optional text label rendered below the icon when provided. */ label?: string; /** Optional tooltip text applied to the button element. */ title?: string; }; export type EditModeTrayWidgetSelectEvent = { id: string; mode: GeoJsonEditModeConstructor | GeoJsonEditModeType; option: EditModeTrayWidgetModeOption; }; export type EditModeTrayWidgetProps = WidgetProps & { /** Placement for the widget root element. */ placement?: WidgetPlacement; /** Layout direction for mode buttons. */ layout?: 'vertical' | 'horizontal'; /** Collection of modes rendered in the tray. */ modes?: EditModeTrayWidgetModeOption[]; /** Identifier of the currently active mode. */ selectedModeId?: string | null; /** Currently active mode instance/constructor. */ activeMode?: GeoJsonEditModeConstructor | GeoJsonEditModeType | null; /** Callback fired when the user selects a mode. */ onSelectMode?: (event: EditModeTrayWidgetSelectEvent) => void; }; export declare class EditModeTrayWidget extends Widget { static defaultProps: { id: string; _container: any; placement: "top-left"; layout: "vertical"; modes: any[]; style: {}; className: string; }; placement: WidgetPlacement; className: string; layout: 'vertical' | 'horizontal'; selectedModeId: string | null; deck?: Deck | null; private appliedCustomClassName; constructor(props?: EditModeTrayWidgetProps); setProps(props: Partial): void; onAdd({ deck }: { deck: Deck; }): void; onRemove(): void; onRenderHTML(rootElement: HTMLElement): void; private renderTray; private handleSelect; private resolveSelectedModeId; private findOptionByMode; private findOptionById; private getModeId; private isSameMode; } //# sourceMappingURL=edit-mode-tray-widget.d.ts.map