import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
import Sequelize from "@golemio/core/dist/shared/sequelize";
export interface IModelDefinition {
    name: string;
    outputJsonSchema: any;
    outputSequelizeAttributes: Sequelize.ModelAttributes;
    pgTableName: string;
}
declare const forExport: {
    name: string;
    pgSchema: string;
    tsk: {
        datasourceGeoJsonSchema: {
            type: string;
            items: {
                type: string;
                required: string[];
                additionalProperties: boolean;
                properties: {
                    type: {
                        type: string;
                    };
                    geometry: {
                        type: string;
                        required: string[];
                        additionalProperties: boolean;
                        properties: {
                            type: {
                                type: string;
                            };
                            coordinates: {
                                type: string;
                            };
                        };
                    };
                    properties: {
                        type: string;
                        required: string[];
                        additionalProperties: boolean;
                        properties: {
                            tarifTab: {
                                type: string;
                            };
                            ps_zps_celkem: {
                                type: string;
                            };
                            typZony: {
                                type: string;
                            };
                            tarifName: {
                                type: string;
                            };
                            platnostOd: {
                                type: string;
                            };
                            platnostDo: {
                                type: string;
                            };
                            ulice: {
                                type: string[];
                            };
                            TARIF: {
                                type: string;
                            };
                            CTARIF: {
                                type: string;
                            };
                        };
                    };
                };
            };
        };
        datasourceTariffJsonSchema: {
            type: string;
            items: {
                type: string;
                required: string[];
                additionalProperties: boolean;
                properties: {
                    TARIF: {
                        type: string;
                    };
                    CTARIF: {
                        type: string;
                    };
                    Day: {
                        type: string;
                    };
                    PricePerHour: {
                        type: string;
                    };
                    MaxParkingTime: {
                        type: string;
                    };
                    MaxPrice: {
                        type: string;
                    };
                    TimeFrom: {
                        type: string;
                    };
                    TimeTo: {
                        type: string;
                    };
                    PayAtHoliday: {
                        type: string;
                    };
                };
            };
        };
        name: string;
    };
    korid: {
        datasourceJsonConfSchema: {
            type: string;
            required: string[];
            additionalProperties: boolean;
            properties: {
                type: {
                    type: string;
                };
                version: {
                    type: string;
                };
                time: {
                    type: string;
                };
                geojson: {
                    type: string;
                    required: string[];
                    additionalProperties: boolean;
                    properties: {
                        type: {
                            type: string;
                        };
                        features: {
                            type: string;
                            additionalProperties: boolean;
                            minItems: number;
                            items: {
                                type: string;
                                required: string[];
                                additionalProperties: boolean;
                                properties: {
                                    type: {
                                        type: string;
                                    };
                                    properties: {
                                        type: string;
                                        required: string[];
                                        additionalProperties: boolean;
                                        properties: {
                                            groupid: {
                                                type: string;
                                            };
                                            title: {
                                                type: string;
                                            };
                                            total: {
                                                type: string;
                                            };
                                            tarif: {
                                                type: string;
                                            };
                                        };
                                    };
                                    geometry: {
                                        type: string;
                                        required: string[];
                                        additionalProperties: boolean;
                                        properties: {
                                            type: {
                                                type: string;
                                            };
                                            coordinates: {
                                                type: string;
                                            };
                                        };
                                    };
                                };
                            };
                        };
                    };
                };
                tarif: {
                    type: string;
                    required: string[];
                    additionalProperties: boolean;
                    properties: {
                        lastUpdated: {
                            type: string;
                        };
                        paymentMode: {
                            type: string;
                            items: {
                                type: string;
                            };
                        };
                        paymentAdditionalDescription: {
                            type: string;
                        };
                        freeOfCharge: {
                            type: string;
                        };
                        urlLinkAddress: {
                            type: string;
                        };
                        chargeBand: {
                            type: string;
                            additionalProperties: boolean;
                            items: {
                                type: string;
                                required: string[];
                                additionalProperties: boolean;
                                properties: {
                                    chargeBandName: {
                                        type: string;
                                    };
                                    acceptedMeansOfPayment: {
                                        type: string;
                                        items: {
                                            type: string;
                                        };
                                    };
                                    chargeCurrency: {
                                        type: string;
                                    };
                                    charge: {
                                        type: string;
                                        required: string[];
                                        additionalProperties: boolean;
                                        items: {
                                            charge: {
                                                type: string;
                                            };
                                            chargeType: {
                                                type: string;
                                            };
                                            chargeOrderIndex: {
                                                type: string;
                                            };
                                            chargeInterval: {
                                                type: string;
                                            };
                                            maxIterationsOfCharge: {
                                                type: string;
                                            };
                                            minIterationsOfCharge: {
                                                type: string;
                                            };
                                            startTimeOfPeriod: {
                                                type: string;
                                            };
                                            endTimeOfPeriod: {
                                                type: string;
                                            };
                                        };
                                    };
                                };
                            };
                        };
                    };
                };
            };
        };
        datasourceJsonSchema: {
            type: string;
            required: string[];
            additionalProperties: boolean;
            properties: {
                type: {
                    type: string;
                };
                version: {
                    type: string;
                };
                time: {
                    type: string;
                };
                data: {
                    type: string;
                    additionalProperties: {
                        type: string;
                        required: string[];
                        additionalProperties: boolean;
                        properties: {
                            tot: {
                                type: string;
                            };
                            fr: {
                                type: string;
                            };
                            occ: {
                                type: string;
                            };
                            cls: {
                                type: string;
                            };
                        };
                    };
                };
            };
        };
        name: string;
    };
    parkings: {
        outputSequelizeAttributes: Sequelize.ModelAttributes<Sequelize.Model<any, any>, any>;
        pgTableName: string;
    };
    parkingsApiV2: {
        outputSequelizeAttributes: Sequelize.ModelAttributes<Sequelize.Model<any, any>, any>;
        pgTableName: string;
    };
    parkingsFiltered: {
        name: string;
        outputSequelizeAttributes: Sequelize.ModelAttributes<Sequelize.Model<any, any>, any>;
        pgTableName: string;
    };
    location: {
        name: string;
        outputJsonSchema: {
            type: string;
            items: {
                $ref: string;
            };
            $defs: {
                Item: {
                    type: string;
                    properties: {
                        id: {
                            type: string;
                        };
                        source: {
                            type: string;
                        };
                        source_id: {
                            type: string;
                        };
                        data_provider: {
                            type: string;
                        };
                        location: {
                            type: string;
                        };
                        centroid: {
                            type: string;
                        };
                        address: {
                            type: string;
                        };
                        total_spot_number: {
                            oneOf: ({
                                type: string;
                                nullable?: undefined;
                            } | {
                                type: string;
                                nullable: boolean;
                            })[];
                        };
                        special_access: {
                            oneOf: ({
                                type: string;
                                items: {
                                    type: string;
                                };
                                nullable?: undefined;
                            } | {
                                type: string;
                                nullable: boolean;
                                items?: undefined;
                            })[];
                        };
                    };
                    required: string[];
                };
            };
        };
        outputSequelizeAttributes: Sequelize.ModelAttributes<Sequelize.Model<any, any>, any>;
        pgTableName: string;
    };
    measurements: {
        name: string;
        outputSequelizeAttributes: Sequelize.ModelAttributes<Sequelize.Model<any, any>, any>;
        pgTableName: string;
    };
    measurementsActual: {
        name: string;
        outputSequelizeAttributes: Sequelize.ModelAttributes<Sequelize.Model<any, any>, any>;
        pgTableName: string;
    };
    latestMeasurements: {
        name: string;
        outputSequelizeAttributes: Sequelize.ModelAttributes<Sequelize.Model<any, any>, any>;
        pgTableName: string;
    };
};
export interface ISchemaDefinition<T> {
    name: string;
    jsonSchema: JSONSchemaType<T>;
}
export { Parkomats } from "./Parkomats";
export { forExport as Parkings };
