/**
 * Represents a prediction substring.
 *
 * **Props**
 * - `offset`
 *      - Type: `number`
 *      - The offset to the substring's start within the description string.
 * - `length`
 *      - Type: `number`
 *      - The length of the substring
 *
 * https://developers.google.com/maps/documentation/javascript/reference/places-autocomplete-service#PredictionSubstring
 */
export type PredictionSubstring = google.maps.places.PredictionSubstring;
/**
 * Structured information about the place's description, divided into a main text and a secondary text,
 * including an array of matched substrings from the autocomplete input,
 * identified by an offset and a length, expressed in unicode characters.
 *
 * **Props**
 * - `main_text`
 *      - Type: `string`
 *      - This is the main text part of the unformatted description of the place suggested
 *      by the Places service. Usually the name of the place.
 * - `secondary_text`
 *      - Type: `string`
 *      - This is the secondary text part of the unformatted description of the place suggested
 *      by the Places service. Usually the location of the place.
 * - `main_text_matched_substrings`
 *      - Type: `PredictionSubstring[]`
 *      - A set of substrings in the main text that match elements in the user's input, suitable for
 *      use in highlighting those substrings. Each substring is identified by an offset and a length,
 *      expressed in unicode characters.
 *
 * https://developers.google.com/maps/documentation/javascript/reference/places-autocomplete-service#StructuredFormatting
 */
export type StructuredFormatting = google.maps.places.StructuredFormatting;
/**
 * Represents a single autocomplete prediction.
 *
 * **Props**
 * - `description`
 *      - Type: `string`
 *      - This is the unformatted version of the query suggested by the Places service.
 * - `structured_formatting`
 *      - Type: `StructuredFormatting`
 *      - Structured information about the place's description
 * - `place_id`
 *      - Type: `string`
 *      - A place ID that can be used to retrieve details about this place using the place details service
 * - `matched_substrings`
 *      - Type: `PredictionSubstring[]`
 *      - A set of substrings in the place's description that match elements in the user's input,
 *      suitable for use in highlighting those substrings. Each substring is identified by an offset
 *      and a length, expressed in unicode characters.
 * - `terms`
 *      - Type: `PredictionTerm`
 *      - Information about individual terms in the above description, from most to least specific.
 *      For example, "Taco Bell", "Willitis", and "CA".
 * - `types`
 *      - Type: `string[]`
 *      - An array of types that the prediction belongs to, for example 'establishment' or 'geocode'.
 *
 * https://developers.google.com/maps/documentation/javascript/reference/places-autocomplete-service#AutocompletePrediction
 */
export type AutocompletePrediction = google.maps.places.AutocompletePrediction;
/**
 * Request for fetching AutocompletePredictions
 */
export interface FetchRequest {
    /**
     * Text input from autocomplete field
     * @required
     */
    input: string;
    /**
     * Acceptable address types for returning responses
     * @required
     */
    types: string[];
}
/**
 * Callback function for fetching AutocompletePredictions
 */
export type FetchCallback = (results?: AutocompletePrediction[] | null) => void;
