import { FC } from 'react';
import { LocalBusiness as SchemaLocalBusiness } from 'schema-dts';
import { DeferSeoProps } from '../types';
import { AggregateRating, Overrides } from '../utils/shared-types';
interface LocalBusinessAddress {
    /** The country. For example, USA. You can also provide the two-letter
     * {@link http://en.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1 alpha-2 country code}.
     */
    addressCountry: string;
    /** The locality in which the street address is, and which is in the region.
     * For example, Mountain View.
     */
    addressLocality?: string;
    /**
     * The region in which the locality is, and which is in the country. For
     * example, California or another appropriate first-level
     * {@link https://en.wikipedia.org/wiki/List_of_administrative_divisions_by_country Administrative division}
     */
    addressRegion?: string;
    /**
     * The postal code. For example, 94043.
     */
    postalCode: string;
    /**
     * The post office box number for PO box addresses.
     */
    postOfficeBoxNumber?: string;
    /**
     * The street address. For example, 1600 Amphitheatre Pkwy.
     */
    streetAddress: string;
}
declare type LocalBusiness = Extract<SchemaLocalBusiness, object>;
export declare type LocalBusinessType = LocalBusiness['@type'];
/**
 * Geographic coordinates of the business.
 */
interface Geo {
    /**
     * The elevation of a location
     * ({@link https://en.wikipedia.org/wiki/World_Geodetic_System WGS 84}).
     * Values may be of the form 'NUMBER UNIT_OF_MEASUREMENT' (e.g., '1,000 m',
     * '3,200 ft') while numbers alone should be assumed to be a value in meters.
     */
    elevation?: string | number;
    /**
     * The latitude of a location.
     *
     * @remarks
     *
     * The precision should be at least 5 decimal places. For example `37.42242`
     * ({@link https://en.wikipedia.org/wiki/World_Geodetic_System WGS 84}).
     */
    latitude: string | number;
    /**
     * The longitude of a location.
     *
     * @remarks
     *
     * The precision should be at least 5 decimal places. For example `-122.08585`
     * ({@link https://en.wikipedia.org/wiki/World_Geodetic_System WGS 84}).
     * */
    longitude: string | number;
}
declare type DayOfWeek = 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday' | 'Mon' | 'Tues' | 'Wed' | 'Thurs' | 'Fri' | 'Sat' | 'Sun' | 'PublicHolidays';
interface OpeningHoursSpecification {
    /**
     * The closing hour of the place or service on the given day(s) of the week,
     * in hh:mm:ss format.
     */
    closes?: string;
    /**
     * The day of the week for which these opening hours are valid.
     */
    dayOfWeek?: DayOfWeek | DayOfWeek[];
    /**
     * The opening hour of the place or service on the given day(s) of the week,
     * in hh:mm:ss format.
     */
    opens?: string;
    /**
     * The date when the opening hours becomes valid, in YYYY-MM-DD format.
     */
    validFrom?: string;
    /**
     * The date after when the opening hours is not valid, in YYYY-MM-DD format.
     */
    validThrough?: string;
}
export interface LocalBusinessJsonLdProps extends DeferSeoProps, Overrides<LocalBusiness> {
    /**
     * @deprecated
     *
     * Use `overrides['@types']` instead.
     */
    type: LocalBusinessType;
    /**
     * Globally unique ID of the specific business location in the form of a URL.
     *
     * @remarks
     *
     * The ID should be stable and unchanging over time. Google Search treats the
     * URL as an opaque string and it does not have to be a working link. If the
     * business has multiple locations, make sure the `id` is unique for each
     * location.
     */
    id: string;
    /**
     * The name of the business.
     */
    name: string;
    /**
     * The description of the business.
     */
    description: string;
    /**
     * The fully-qualified URL of the specific business location. Unlike the `id`
     * property, this URL property should be a working link.
     */
    url: string;
    /**
     * A business phone number meant to be the primary contact method for
     * customers. Be sure to include the country code and area code in the phone
     * number.
     */
    telephone?: string;
    /**
     * The physical location of the business. Include as many properties as
     * possible. The more properties you provide, the higher quality the result is
     * to users.
     */
    address: LocalBusinessAddress;
    /**
     * Geographic coordinates of the business.
     */
    geo: Geo;
    /**
     * One or more images of the `LocalBusiness`.
     *
     * @remarks
     *
     * Additional image guidelines:
     *
     * Every page must contain at least one image (whether or not you include
     * markup). Google will pick the best image to display in Search results based
     * on the aspect ratio and resolution. Image URLs must be crawlable and
     * indexable. Images must represent the marked up content. Images must be in
     * .jpg, .png, or. gif format. For best results, provide multiple
     * high-resolution images (minimum of 50K pixels when multiplying width and
     * height) with the following aspect ratios: 16x9, 4x3, and 1x1. For example:
     *
     * ```js
     * const props = {
     *   ... //
     *     "image": [
     *     "https://example.com/photos/1x1/photo.jpg",
     *     "https://example.com/photos/4x3/photo.jpg",
     *     "https://example.com/photos/16x9/photo.jpg"
     *   ]
     * };
     * ```
     *
     */
    images: string[];
    /**
     * The opening hours of a certain place.
     *
     * @remarks
     *
     * Use both the validFrom and validThrough properties to define seasonal
     * hours. This example shows a business closed for winter holidays.
     *
     * #### Standard hours
     *
     * Excluding the validFrom and validThrough properties signify that the hours
     * are valid year-round.This example defines a business that is open weekdays
     * from 9am to 9pm, with weekend hours from 10am until 11pm.
     *
     * ```js
     * const props = {
     *   ...other,
     *   openingHoursSpecification: [
     *     {
     *       dayOfWeek: [
     *        "Monday",
     *        "Tuesday",
     *        "Wednesday",
     *        "Thursday",
     *        "Friday"
     *       ],
     *       opens: "09:00",
     *       closes: "21:00"
     *     },
     *     {
     *       dayOfWeek: ["Saturday", "Sunday"],
     *       opens: "10:00",
     *       closes: "23:00"
     *     }
     *   ]
     * }
     * ```
     *
     * #### Late night hours
     *
     * For hours past midnight, define opening and closing hours using a single
     * OpeningHoursSpecification property. This example defines hours from
     * Saturday at 6pm until Sunday at 3am.
     *
     * ```js
     * const props = {
     *   ...other,
     *   openingHoursSpecification: {
     *     opens: "18:00",
     *     closes: "03:00",
     *     dayOfWeek: "Saturday",
     *   }
     * }
     * ```
     *
     * #### All-day hours
     *
     * To show a business as open 24 hours a day, set the open property to "00:00"
     * and the closes property to "23:59".To show a business is closed all day,
     * set both opens and closes properties to "00:00". This example shows a
     * business open all day Saturday and closed all day Sunday.
     *
     *
     * ```js
     * const props = {
     *   ...other,
     *   openingHoursSpecification: [
     *     {
     *       dayOfWeek: "Saturday",
     *       opens: "00:00",
     *       closes: "23:59"
     *     },
     *     {
     *       dayOfWeek: "Sunday",
     *       opens: "00:00",
     *       closes: "00:00"
     *     }
     *   ]
     * }
     * ```
     *
     *
     * #### Seasonal hours
     * ```js
     * const props = {
     *   ...other,
     *   openingHoursSpecification: {
     *     opens: "00:00",
     *     closes: "00:00",
     *     validFrom: "2015-12-23",
     *     validThrough: "2016-01-05"
     *   }
     * }
     * ```
     */
    openingHours?: OpeningHoursSpecification | OpeningHoursSpecification[];
    /**
     * The average rating of the local business based on multiple ratings or
     * reviews.
     */
    rating?: AggregateRating;
    /**
     * The relative price range of a business, commonly specified by either a
     * numerical range.
     *
     * @remarks
     *
     * @example "$10-15" or a normalized number of currency signs (for example,
     * "$$$")
     */
    priceRange?: string;
}
/**
 * When users search for businesses on Google Search or Maps, Search results may
 * display a prominent Knowledge Graph card with details about a business that
 * matched the query.
 */
export declare const LocalBusinessJsonLd: FC<LocalBusinessJsonLdProps>;
export {};
//# sourceMappingURL=local-business.d.ts.map