import { ElementType } from './types'; export interface IMultiPopup { trigger?: string; } export interface IMultiPopupItemField { field: string; formatField?: ElementType | ((field: string, feature: any) => ElementType); formatValue?: ElementType | ((value: any, feature: any) => ElementType); getValue?: (feature: any) => any; } export interface IMultiPopupItem { layer: any; fields: IMultiPopupItemField[]; customContent?: ElementType | ((feature: any) => ElementType); title?: ElementType | ((feature: any) => ElementType); } export interface IMultiPopupSetData { lng: number; lat: number; ['string']: any; } export type IFillShape = 'circle' | 'square' | 'hexagon' | 'triangle' | 'pentagon' | 'octogon' | 'hexagram' | 'rhombus' | 'vesica'; export type TColor = (color: string) => void; export type TStyle = { opacity?: number | [string, Function] | [string, [number, number]]; strokeOpacity?: number; strokeWidth?: number; stroke?: number; offsets?: number; textOffset?: number; thetaOffset?: number; }; export interface IScaleConfig { type: string; domain?: any[]; range?: any[]; neutral?: number; field?: string; unknown?: string; ticks?: any[]; nice?: boolean; clamp?: boolean; format?: () => any; } export type Position = 'topleft' | 'lefttop' | 'topright' | 'righttop' | 'bottomleft' | 'leftbottom' | 'bottomright' | 'rightbottom' | 'topcenter' | 'bottomcenter' | 'leftcenter' | 'rightcenter' | Element; export interface ILayerPopup { items?: IItems[]; trigger?: string; } export interface IItems { layer: any; fields: IMultiPopupItemField[]; customContent?: ElementType | ((feature: any) => ElementType); title?: ElementType | ((feature: any) => ElementType); }