import type { MultiPolygonGeometry } from '../../..';
/**
 * # GBFS Station Information Schema V3.1-RC & V3.0
 * List of all stations, their capacities, and locations. REQUIRED for systems utilizing docks.
 *
 * ## Links
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.1-RC/gbfs.md#station_informationjson)
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.0/gbfs.md#station_informationjson)
 */
export type GBFSStationInformationV3 = GBFSStationInformationV31RC | GBFSStationInformationV30;
/**
 * # GBFS Station Information Schema V3.1-RC
 * List of all stations, their capacities and locations. REQUIRED of systems utilizing docks.
 *
 * ## Links
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.1-RC/gbfs.md#station_informationjson)
 */
export declare const gbfsStationInformationSchemaV31RC: {
    $schema: string;
    $id: string;
    description: string;
    type: string;
    properties: {
        last_updated: {
            description: string;
            type: string;
            format: string;
        };
        ttl: {
            description: string;
            type: string;
            minimum: number;
        };
        version: {
            description: string;
            type: string;
            const: string;
        };
        data: {
            description: string;
            type: string;
            properties: {
                stations: {
                    type: string;
                    items: {
                        type: string;
                        properties: {
                            station_id: {
                                description: string;
                                type: string;
                            };
                            name: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    properties: {
                                        text: {
                                            description: string;
                                            type: string;
                                        };
                                        language: {
                                            description: string;
                                            type: string;
                                            pattern: string;
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            short_name: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    properties: {
                                        text: {
                                            description: string;
                                            type: string;
                                        };
                                        language: {
                                            description: string;
                                            type: string;
                                            pattern: string;
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            lat: {
                                description: string;
                                type: string;
                                minimum: number;
                                maximum: number;
                            };
                            lon: {
                                description: string;
                                type: string;
                                minimum: number;
                                maximum: number;
                            };
                            address: {
                                description: string;
                                type: string;
                            };
                            cross_street: {
                                description: string;
                                type: string;
                            };
                            region_id: {
                                description: string;
                                type: string;
                            };
                            post_code: {
                                description: string;
                                type: string;
                            };
                            station_opening_hours: {
                                description: string;
                                type: string;
                            };
                            rental_methods: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    enum: string[];
                                };
                                minItems: number;
                            };
                            is_virtual_station: {
                                description: string;
                                type: string;
                            };
                            station_area: {
                                description: string;
                                type: string;
                                required: string[];
                                properties: {
                                    type: {
                                        type: string;
                                        enum: string[];
                                    };
                                    coordinates: {
                                        type: string;
                                        items: {
                                            type: string;
                                            items: {
                                                type: string;
                                                minItems: number;
                                                items: {
                                                    type: string;
                                                    minItems: number;
                                                    items: {
                                                        type: string;
                                                    };
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                            parking_type: {
                                description: string;
                                type: string;
                                enum: string[];
                            };
                            parking_hoop: {
                                description: string;
                                type: string;
                            };
                            contact_phone: {
                                description: string;
                                type: string;
                            };
                            capacity: {
                                description: string;
                                type: string;
                                minimum: number;
                            };
                            vehicle_types_capacity: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    properties: {
                                        vehicle_type_ids: {
                                            description: string;
                                            type: string;
                                            items: {
                                                type: string;
                                            };
                                        };
                                        count: {
                                            description: string;
                                            type: string;
                                            minimum: number;
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            vehicle_docks_capacity: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    properties: {
                                        vehicle_type_ids: {
                                            description: string;
                                            type: string;
                                            items: {
                                                type: string;
                                            };
                                        };
                                        count: {
                                            description: string;
                                            type: string;
                                            minimum: number;
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            is_valet_station: {
                                description: string;
                                type: string;
                            };
                            is_charging_station: {
                                description: string;
                                type: string;
                            };
                            rental_uris: {
                                description: string;
                                type: string;
                                properties: {
                                    android: {
                                        description: string;
                                        type: string;
                                        format: string;
                                    };
                                    ios: {
                                        description: string;
                                        type: string;
                                        format: string;
                                    };
                                    web: {
                                        description: string;
                                        type: string;
                                        format: string;
                                    };
                                };
                            };
                        };
                        required: string[];
                    };
                };
            };
            required: string[];
        };
    };
    required: string[];
};
/**
 * Information about a single station.
 */
export interface GBFSStationV3 {
    /**
     * Identifier of the station.
     */
    station_id: string;
    /**
     * Public name of the station.
     */
    name: Array<{
        /**
         * The translated text.
         */
        text: string;
        /**
         * IETF BCP 47 language code.
         * **Pattern**: `^[a-z]{2,3}(-[A-Z]{2})?$`
         */
        language: string;
    }>;
    /**
     * The latitude of the station.
     * **Minimum**: -90
     * **Maximum**: 90
     */
    lat: number;
    /**
     * The longitude of the station.
     * **Minimum**: -180
     * **Maximum**: 180
     */
    lon: number;
    /**
     * Short name or alternative identifier for the station.
     */
    short_name?: Array<{
        text: string;
        language: string;
    }>;
    /**
     * Address where the station is located.
     */
    address?: string;
    /**
     * Cross street or landmark where the station is located.
     */
    cross_street?: string;
    /**
     * Identifier of the region where the station is located.
     */
    region_id?: string;
    /**
     * Postal code where the station is located.
     */
    post_code?: string;
    /**
     * Hours of operation for the station in OSM opening_hours format.
     */
    station_opening_hours?: string;
    /**
     * Payment methods accepted at the station.
     * **Enum**: ['key', 'creditcard', 'paypass', 'applepay', 'androidpay', 'transitcard', 'accountnumber', 'phone']
     */
    rental_methods?: Array<'key' | 'creditcard' | 'paypass' | 'applepay' | 'androidpay' | 'transitcard' | 'accountnumber' | 'phone'>;
    /**
     * Is this station a location with or without physical infrastructure? (added in v2.1-RC)
     */
    is_virtual_station?: boolean;
    /**
     * A multipolygon describing the area of a virtual station. (added in v2.1-RC)
     */
    station_area?: MultiPolygonGeometry;
    /**
     * Type of parking station. (added in v2.3)
     * **Enum**: ['parking_lot', 'street_parking', 'underground_parking', 'sidewalk_parking', 'other']
     */
    parking_type?: 'parking_lot' | 'street_parking' | 'underground_parking' | 'sidewalk_parking' | 'other';
    /**
     * Are parking hoops present at this station? (added in v2.3)
     */
    parking_hoop?: boolean;
    /**
     * Contact phone of the station. (added in v2.3)
     */
    contact_phone?: string;
    /**
     * Total docking points installed at the station, both available and unavailable.
     * **Minimum**: 0
     */
    capacity?: number;
    /**
     * Parking capacity for virtual stations per vehicle type.
     */
    vehicle_types_capacity?: Array<{
        vehicle_type_ids: string[];
        count: number;
    }>;
    /**
     * Docking capacity per vehicle type at the station.
     */
    vehicle_docks_capacity?: Array<{
        vehicle_type_ids: string[];
        count: number;
    }>;
    /**
     * Are valet services provided at the station? (added in v2.1-RC)
     */
    is_valet_station?: boolean;
    /**
     * Does the station support charging of electric vehicles? (added in v2.3-RC)
     */
    is_charging_station?: boolean;
    /**
     * Rental URIs for Android, iOS, and web.
     */
    rental_uris?: {
        /**
         * URI for Android apps. (added in v1.1)
         * **Format**: uri
         */
        android?: string;
        /**
         * URI for iOS apps. (added in v1.1)
         * **Format**: uri
         */
        ios?: string;
        /**
         * URL for web browsers. (added in v1.1)
         * **Format**: uri
         */
        web?: string;
    };
}
/**
 * # GBFS Station Information Schema V3.1-RC
 * List of all stations, their capacities, and locations. REQUIRED for systems utilizing docks.
 *
 * ## Links
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.1-RC/gbfs.md#station_informationjson)
 */
export interface GBFSStationInformationV31RC {
    /**
     * Last time the data in the feed was updated in RFC3339 format.
     * **Format**: date-time
     */
    last_updated: string;
    /**
     * Number of seconds before the data in the feed will be updated again
     * (0 if the data should always be refreshed).
     * **Minimum**: 0
     */
    ttl: number;
    /**
     * GBFS version number to which the feed conforms, according to the versioning framework (added in v1.1).
     * **Const**: 3.1-RC
     */
    version: '3.1-RC';
    /**
     * Contains station data for the system.
     */
    data: {
        /**
         * Array of stations, each containing location, capacity, and other metadata.
         */
        stations: GBFSStationV3[];
    };
}
/**
 * # GBFS Station Information Schema V3.0
 * List of all stations, their capacities and locations. REQUIRED of systems utilizing docks.
 *
 * ## Links
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.0/gbfs.md#station_informationjson)
 */
export declare const gbfsStationInformationSchemaV30: {
    $schema: string;
    $id: string;
    description: string;
    type: string;
    properties: {
        last_updated: {
            description: string;
            type: string;
            format: string;
        };
        ttl: {
            description: string;
            type: string;
            minimum: number;
        };
        version: {
            description: string;
            type: string;
            const: string;
        };
        data: {
            description: string;
            type: string;
            properties: {
                stations: {
                    type: string;
                    items: {
                        type: string;
                        properties: {
                            station_id: {
                                description: string;
                                type: string;
                            };
                            name: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    properties: {
                                        text: {
                                            description: string;
                                            type: string;
                                        };
                                        language: {
                                            description: string;
                                            type: string;
                                            pattern: string;
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            short_name: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    properties: {
                                        text: {
                                            description: string;
                                            type: string;
                                        };
                                        language: {
                                            description: string;
                                            type: string;
                                            pattern: string;
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            lat: {
                                description: string;
                                type: string;
                                minimum: number;
                                maximum: number;
                            };
                            lon: {
                                description: string;
                                type: string;
                                minimum: number;
                                maximum: number;
                            };
                            address: {
                                description: string;
                                type: string;
                            };
                            cross_street: {
                                description: string;
                                type: string;
                            };
                            region_id: {
                                description: string;
                                type: string;
                            };
                            post_code: {
                                description: string;
                                type: string;
                            };
                            station_opening_hours: {
                                description: string;
                                type: string;
                            };
                            rental_methods: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    enum: string[];
                                };
                                minItems: number;
                            };
                            is_virtual_station: {
                                description: string;
                                type: string;
                            };
                            station_area: {
                                description: string;
                                type: string;
                                required: string[];
                                properties: {
                                    type: {
                                        type: string;
                                        enum: string[];
                                    };
                                    coordinates: {
                                        type: string;
                                        items: {
                                            type: string;
                                            items: {
                                                type: string;
                                                minItems: number;
                                                items: {
                                                    type: string;
                                                    minItems: number;
                                                    items: {
                                                        type: string;
                                                    };
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                            parking_type: {
                                description: string;
                                type: string;
                                enum: string[];
                            };
                            parking_hoop: {
                                description: string;
                                type: string;
                            };
                            contact_phone: {
                                description: string;
                                type: string;
                            };
                            capacity: {
                                description: string;
                                type: string;
                                minimum: number;
                            };
                            vehicle_types_capacity: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    properties: {
                                        vehicle_type_ids: {
                                            description: string;
                                            type: string;
                                            items: {
                                                type: string;
                                            };
                                        };
                                        count: {
                                            description: string;
                                            type: string;
                                            minimum: number;
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            vehicle_docks_capacity: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    properties: {
                                        vehicle_type_ids: {
                                            description: string;
                                            type: string;
                                            items: {
                                                type: string;
                                            };
                                        };
                                        count: {
                                            description: string;
                                            type: string;
                                            minimum: number;
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            is_valet_station: {
                                description: string;
                                type: string;
                            };
                            is_charging_station: {
                                description: string;
                                type: string;
                            };
                            rental_uris: {
                                description: string;
                                type: string;
                                properties: {
                                    android: {
                                        description: string;
                                        type: string;
                                        format: string;
                                    };
                                    ios: {
                                        description: string;
                                        type: string;
                                        format: string;
                                    };
                                    web: {
                                        description: string;
                                        type: string;
                                        format: string;
                                    };
                                };
                            };
                        };
                        required: string[];
                    };
                };
            };
            required: string[];
        };
    };
    required: string[];
};
/**
 * # GBFS Station Information Schema V3.0
 * List of all stations, their capacities, and locations. REQUIRED for systems utilizing docks.
 *
 * ## Links
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.0/gbfs.md#station_informationjson)
 */
export interface GBFSStationInformationV30 {
    /**
     * Last time the data in the feed was updated in RFC3339 format.
     * **Format**: date-time
     */
    last_updated: string;
    /**
     * Number of seconds before the data in the feed will be updated again (0 if the data should always be refreshed).
     * **Minimum**: 0
     */
    ttl: number;
    /**
     * GBFS version number to which the feed conforms.
     * **Const**: '3.0'
     */
    version: '3.0';
    /**
     * Data object containing station information.
     */
    data: {
        /**
         * List of stations with their attributes.
         */
        stations: GBFSStationV3[];
    };
}
//# sourceMappingURL=stationInformation.d.ts.map