import type { MultiPolygonGeometry } from '../../..';
/**
 * # GBFS Manifest Schema V3.1-RC & V3.0
 * An index of gbfs.json URLs for each GBFS data set produced by a publisher. A single instance of
 * this file should be published at a single stable URL, for example: https://example.com/gbfs/manifest.json.
 *
 * ## Links
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.1-RC/gbfs.md#manifestjson)
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.0/gbfs.md#manifestjson)
 */
export type GBFSManifestV3 = GBFSManifestV31RC | GBFSManifestV30;
/**
 * # GBFS Manifest Schema V3.1-RC
 * An index of gbfs.json URLs for each GBFS data set produced by a publisher. A single instance of
 * this file should be published at a single stable URL, for example: https://example.com/gbfs/manifest.json.
 *
 * ## Links
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.1-RC/gbfs.md#manifestjson)
 */
export declare const gbfsManifestSchemaV31RC: {
    $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: {
            type: string;
            properties: {
                datasets: {
                    description: string;
                    type: string;
                    items: {
                        type: string;
                        properties: {
                            system_id: {
                                description: string;
                                type: string;
                            };
                            versions: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    properties: {
                                        version: {
                                            description: string;
                                            type: string;
                                            enum: string[];
                                        };
                                        url: {
                                            description: string;
                                            type: string;
                                            format: string;
                                        };
                                    };
                                    required: string[];
                                };
                            };
                            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;
                                                    };
                                                };
                                            };
                                        };
                                    };
                                };
                            };
                            country_code: {
                                description: string;
                                type: string;
                                pattern: string;
                            };
                        };
                        required: string[];
                    };
                };
            };
            required: string[];
            additionalProperties: boolean;
        };
    };
    required: string[];
};
/**
 * # GBFS Manifest Schema V3.1-RC
 * An index of gbfs.json URLs for each GBFS data set produced by a publisher. A single instance of
 * this file should be published at a single stable URL, for example: https://example.com/gbfs/manifest.json.
 *
 * ## Links
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.1-RC/gbfs.md#manifestjson)
 */
export interface GBFSManifestV31RC {
    /**
     * 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 the dataset information for the publisher.
     */
    data: {
        /**
         * An array of objects, each containing dataset information.
         */
        datasets: Array<{
            /**
             * The system_id from system_information.json for the corresponding data set(s).
             */
            system_id: string;
            /**
             * An array of available versions of a feed, sorted by increasing MAJOR and MINOR version numbers.
             */
            versions: Array<{
                /**
                 * The semantic version of the feed in the form X.Y
                 * **Enum**: ['1.0', '1.1', '2.0', '2.1', '2.2', '2.3', '3.0', '3.1-RC']
                 */
                version: '1.0' | '1.1' | '2.0' | '2.1' | '2.2' | '2.3' | '3.0' | '3.1-RC';
                /**
                 * URL of the corresponding gbfs.json endpoint
                 * **Format**: uri
                 */
                url: string;
            }>;
            /**
             * A GeoJSON MultiPolygon that describes the operating area.
             */
            area?: MultiPolygonGeometry;
            /**
             * The ISO 3166-1 alpha-2 country code of the operating area.
             * **Pattern**: `^[A-Z]{2}`
             */
            country_code?: string;
        }>;
    };
}
/**
 * # GBFS Manifest Schema V3.0
 * An index of gbfs.json URLs for each GBFS data set produced by a publisher. A single instance of
 * this file should be published at a single stable URL, for example: https://example.com/gbfs/manifest.json.
 *
 * ## Links
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.0/gbfs.md#manifestjson)
 */
export declare const gbfsManifestSchemaV30: {
    $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: {
            type: string;
            properties: {
                datasets: {
                    description: string;
                    type: string;
                    items: {
                        type: string;
                        properties: {
                            system_id: {
                                description: string;
                                type: string;
                            };
                            versions: {
                                description: string;
                                type: string;
                                items: {
                                    type: string;
                                    properties: {
                                        version: {
                                            description: string;
                                            type: string;
                                            enum: string[];
                                        };
                                        url: {
                                            description: string;
                                            type: string;
                                            format: string;
                                        };
                                    };
                                    required: string[];
                                };
                            };
                        };
                        required: string[];
                    };
                };
            };
            required: string[];
            additionalProperties: boolean;
        };
    };
    required: string[];
};
/**
 * # GBFS Manifest Schema V3.0
 * An index of gbfs.json URLs for each GBFS data set produced by a publisher. A single instance of
 * this file should be published at a single stable URL, for example: https://example.com/gbfs/manifest.json.
 *
 * ## Links
 * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.0/gbfs.md#manifestjson)
 */
export interface GBFSManifestV30 {
    /**
     * 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.
     * **Const**: '3.0'
     */
    version: '3.0';
    /**
     * Data object containing the list of datasets.
     */
    data: {
        /**
         * Array of datasets containing system IDs and versions.
         */
        datasets: Array<{
            /**
             * The `system_id` from system_information.json for the corresponding data set(s).
             */
            system_id: string;
            /**
             * Array of available versions of the feed, sorted by increasing MAJOR and MINOR version number.
             */
            versions: Array<{
                /**
                 * Semantic version of the feed in the form X.Y.
                 */
                version: '1.0' | '1.1' | '2.0' | '2.1' | '2.2' | '2.3' | '3.0';
                /**
                 * URL of the corresponding gbfs.json endpoint.
                 * **Format**: uri
                 */
                url: string;
            }>;
        }>;
    };
}
//# sourceMappingURL=manifest.d.ts.map