/// <reference types="google.maps" />
import { ReactNode } from 'react';
export interface LocationFinderProps {
    googleMapsApiKey: string;
    locations: Location[];
    listInputPlaceholder?: string;
    numberOfLocationsLabel?: string;
    maxItemsInList?: number;
    styles?: google.maps.MapTypeStyle[];
    cluster?: boolean;
    markerIcon?: {
        url: string;
        width: number;
        height: number;
    };
    selectedItemBackLabel?: string;
    language?: string;
    region?: string;
    defaultZoom?: number;
    defaultCenter?: google.maps.LatLngLiteral;
    defaultBounds?: google.maps.LatLngBoundsLiteral;
    listInputDefaultValue?: string;
    listInputLocationButtonIcon?: string;
    classNameContainer: string;
    classNameCard?: string;
    classNameCardWrapper?: string;
    classNameList?: string;
    classNameListHeader?: string;
    classNameListInput?: string;
    classNameListInputLocationButton?: string;
    classNameListNumberOfLocations?: string;
    classNameListItem?: string;
    classNameListItemWrapper?: string;
    classNameListItemDistance?: string;
    classNameListItemDistanceKm?: string;
    classNameListItemDistanceKmLabel?: string;
    classNameListItemTitle?: string;
    classNameListItemStreet?: string;
    classNameSelectedItem?: string;
    classNameSelectedItemBack?: string;
    renderListHeaderTop?: ({ numberOfLocations, numberOfLocationsLabel }: {
        numberOfLocations: number;
        numberOfLocationsLabel: string;
    }) => ReactNode;
    renderListHeaderBottom?: ({ numberOfLocations, numberOfLocationsLabel }: {
        numberOfLocations: number;
        numberOfLocationsLabel: string;
    }) => ReactNode;
    renderSelectedItemBack?: ({ onClick }: {
        onClick: () => void;
    }) => ReactNode;
    renderSelectedItemImage?: ({ image }: {
        image?: string;
    }) => ReactNode;
}
export interface Location {
    id: string;
    title: string;
    position: google.maps.LatLngLiteral;
    distance?: number;
    street: string;
    city: string;
    openingHours?: OpeningHours;
    image?: string[];
}
export interface OpeningHours {
    days: OpeningHoursDays;
}
export interface OpeningHoursDays {
    [key: number]: OpeningHoursDaysDay;
}
export interface OpeningHoursDaysDay {
    closed?: boolean;
    slots: OpeningHoursDaysDaySlot[];
}
export interface OpeningHoursDaysDaySlot {
    from: OpeningHoursDaysDaySlotTime;
    to: OpeningHoursDaysDaySlotTime;
}
export interface OpeningHoursDaysDaySlotTime {
    hours: number;
    minutes: number;
}
declare const LocationFinder: ({ googleMapsApiKey, listInputPlaceholder, locations, region, numberOfLocationsLabel, defaultZoom, defaultCenter, defaultBounds, styles, classNameContainer, classNameCard, classNameCardWrapper, classNameListInput, classNameListNumberOfLocations, classNameListItem, classNameListInputLocationButton, classNameListItemWrapper, classNameListItemDistance, classNameListItemDistanceKm, classNameListItemDistanceKmLabel, classNameListItemTitle, classNameListItemStreet, classNameList, classNameListHeader, classNameSelectedItem, classNameSelectedItemBack, renderListHeaderTop, renderListHeaderBottom, renderSelectedItemBack, renderSelectedItemImage, markerIcon, listInputDefaultValue, listInputLocationButtonIcon, selectedItemBackLabel, language }: LocationFinderProps) => JSX.Element;
export default LocationFinder;
