import * as React from "react";
import { ByLang, FormContext } from "../../LajiForm";
import memoize from "memoizee";
import type { components } from "../../../generated/api.d";
type NamedPlace = components["schemas"]["store-namedPlace"];
type Props = {
    places: NamedPlace[];
    failed?: boolean;
    formContext: FormContext;
    onSelected: (place: NamedPlace) => void;
    onDeleted: (place: NamedPlace, callback: () => void) => void;
};
type State = {
    deleting?: boolean;
    popupIdx?: number;
};
export declare class NamedPlaceChooser extends React.Component<Props, State> {
    static contextType: React.Context<import("../../../ReactContext").ContextProps>;
    popupRef: React.RefObject<{
        elem: HTMLElement;
        button: HTMLElement;
    }>;
    popupContainerRef: React.RefObject<HTMLDivElement>;
    mapRef: React.RefObject<any>;
    idxToLayer?: Record<string, any>;
    geometryCollectionData?: {
        geoData: any;
    };
    constructor(props: Props);
    onPlaceSelected: (place: NamedPlace) => void;
    onPlaceDeleted: (place: NamedPlace) => void;
    onSelectChange: (idx: number | undefined) => void;
    componentDidUpdate(_: Props, prevState: State): void;
    getFeatureStyle: (data: any) => {
        color: string;
        fillColor: string;
    };
    getPopup: ({ feature }: any, givePopupToLajiMap: (element: HTMLElement) => void) => void;
    onPopupClose: () => void;
    getEnumOptions: ((places: NamedPlace[], translations: ByLang) => {
        placeholder: string;
        enumOptions: {
            value: number;
            label: string;
        }[];
    }) & memoize.Memoized<(places: NamedPlace[], translations: ByLang) => {
        placeholder: string;
        enumOptions: {
            value: number;
            label: string;
        }[];
    }>;
    render(): JSX.Element;
}
export {};
