/**
 * Props-driven map picker. Renders a Leaflet map inside a FieldFrame.
 * Clicking the map drops a pin and emits the {lat, lng} pair via
 * `update:modelValue`.
 *
 * Leaflet is imported dynamically inside `onMounted` so it never runs
 * its initialisation code during SSR or module evaluation — avoiding
 * the `L.Icon.Default` crash that plagues wrapper packages in Vite.
 */
export interface LatLng {
    lat: number;
    lng: number;
}
export interface MapPickerProps {
    modelValue?: LatLng | null;
    id?: string;
    name?: string;
    label?: string;
    hideLabel?: boolean;
    required?: boolean;
    readonly?: boolean;
    disabled?: boolean;
    helpText?: string;
    errors?: string[];
    /** Centre used when `modelValue` is empty. Defaults to London. */
    defaultCenter?: LatLng;
    /** Initial zoom level. */
    defaultZoom?: number;
    /** CSS height applied to the map container. */
    height?: string;
    /** Tile server URL template. Defaults to OpenStreetMap. */
    tileUrl?: string;
    /** Tile attribution string rendered by Leaflet. */
    tileAttribution?: string;
}
type __VLS_Props = MapPickerProps;
type __VLS_PublicProps = {
    "modelValue"?: LatLng | null;
} & __VLS_Props;
declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "update:modelValue": (value: LatLng | null) => any;
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
    "onUpdate:modelValue"?: ((value: LatLng | null) => any) | undefined;
}>, {
    height: string;
    defaultZoom: number;
    errors: string[];
    defaultCenter: LatLng;
    tileUrl: string;
    tileAttribution: string;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
    mapEl: HTMLDivElement;
}, HTMLDivElement>;
export default _default;
//# sourceMappingURL=MapPicker.vue.d.ts.map