import type { StandaloneSearchBoxProps } from "@react-google-maps/api";
import { JSX } from "react";
import { InputProps } from "./input";
/**
 * Props for the SearchPlaces component.
 * @typedef {Object} SearchPlacesProps
 * @property {StandaloneSearchBoxProps["options"]} [options] - Google Maps StandaloneSearchBox configuration options
 * @property {(value: string) => void} [onChange] - Callback fired when the input value changes
 * @property {(place: PlaceData) => void} [onPlaceChanged] - Callback fired when a place is selected from the autocomplete suggestions
 */
type SearchPlacesProps = {
    options?: StandaloneSearchBoxProps["options"];
    onChange?: (e: string) => void;
    onPlaceChanged?: (e: {
        street: string;
        city: string;
        state: string;
        neighborhood: string;
        postalCode: string;
        stateShortName: string;
        streetNumber: string;
        coordinates: {
            lat: number;
            lng: number;
        };
    }) => void;
} & Omit<InputProps, "onLoad" | "onChange" | "type">;
/**
 * SearchPlaces component - A Google Places autocomplete input field.
 *
 * This component integrates with Google Maps API to provide address autocomplete functionality.
 * When a user selects a place from the suggestions, it extracts and returns structured address data
 * including street, city, state, neighborhood, postal code, and geographic coordinates.
 *
 * @component
 * @example
 * ```tsx
 * <SearchPlaces
 *   placeholder="Digite o endereço"
 *   onChange={(value) => console.log('Input:', value)}
 *   onPlaceChanged={(place) => {
 *     console.log('Selected place:', place);
 *     // place = {
 *     //   street: "Rua exemplo",
 *     //   city: "São Paulo",
 *     //   state: "São Paulo",
 *     //   neighborhood: "Centro",
 *     //   postalCode: "01310-100",
 *     //   stateShortName: "SP",
 *     //   streetNumber: "123",
 *     //   coordinates: { lat: -23.5505, lng: -46.6333 }
 *     // }
 *   }}
 *   options={{
 *     componentRestrictions: { country: "br" }
 *   }}
 * />
 * ```
 *
 * @param {SearchPlacesProps} props - Component props
 * @param {StandaloneSearchBoxProps["options"]} [props.options] - Google Maps API options for filtering/customizing search results
 * @param {(value: string) => void} [props.onChange] - Handler called when the input text changes
 * @param {(place: PlaceData) => void} [props.onPlaceChanged] - Handler called when a place is selected, receives structured address data
 * @returns {JSX.Element} An input field with Google Places autocomplete functionality
 *
 * @requires Google Maps JavaScript API with Places library loaded
 * @requires @react-google-maps/api package
 */
declare function SearchPlaces(props: SearchPlacesProps): JSX.Element;
export { SearchPlaces };
//# sourceMappingURL=searchPlaces.d.ts.map