import type { Color } from 'types'; export declare const LEGEND_POSITIONS: { readonly bottom: "bottom"; readonly left: "left"; readonly right: "right"; }; export type LegendPositions = typeof LEGEND_POSITIONS[keyof typeof LEGEND_POSITIONS]; export interface LegendLabelsConfiguration { text?: (legendIndex: number) => string; } export interface LegendConfiguration { display?: boolean; position?: LegendPositions; align?: 'start' | 'center' | 'end'; labels?: LegendLabelsConfiguration; boxStyle?: 'rect' | 'line' | 'dash'; /** Wether to use ChartJS legend or homemade one NOTE: temporary API for backward compatibility */ custom?: boolean; } export type LegendVariant = 'fluid' | 'fixed'; export declare const CATEGORY_ITEM_VARIANT: { readonly Circle: "circle"; readonly Line: "line"; readonly Box: "box"; readonly Image: "image"; }; type BaseCategoryItem = { label: LegendLabelsConfiguration | string | undefined; onClick?: (index: number) => void; onHover?(index: number, isVisible: boolean): void; onLeave?(): void; }; export type CircleCategoryItem = BaseCategoryItem & { variant: typeof CATEGORY_ITEM_VARIANT.Circle; color: Color; borderColor?: Color; }; export type BoxCategoryItem = BaseCategoryItem & { variant: typeof CATEGORY_ITEM_VARIANT.Box; color: Color; borderColor?: Color; }; export type LineCategoryItem = BaseCategoryItem & { variant: typeof CATEGORY_ITEM_VARIANT.Line; borderColor: Color; dashed?: boolean; }; export type ImageCategoryItem = BaseCategoryItem & { variant: typeof CATEGORY_ITEM_VARIANT.Image; src: string; }; export type CategoryItem = CircleCategoryItem | BoxCategoryItem | LineCategoryItem | ImageCategoryItem; export declare const CATEGORY_LEGEND_POSITION: { /** Below the map (default, legacy behaviour). */ readonly bottom: "bottom"; /** Floating overlay in the map's top inline-start corner (mirrors in RTL). */ readonly topLeft: "top-left"; }; export type CategoryLegendPosition = LegendPositions | typeof CATEGORY_LEGEND_POSITION.topLeft; export type CategoryLegend = { type: 'category'; items: CategoryItem[]; title?: string; align?: 'start' | 'center' | 'end'; /** * Where the legend renders relative to the map. Defaults to `'bottom'` * (below the map). `'top-left'` renders it as a floating overlay in the * map's top corner. Positioning is logical (inline-start), so it * automatically mirrors to the top-right corner in RTL layouts. */ position?: CategoryLegendPosition; }; export {};