import { DatasetEnum } from "../../../../helpers/DatasetEnum";
import { ICisStopsTransformationData, ICisStopsTransformedData } from "../../../../transformations/RopidGTFSCisStopsTransformation";
import { IOisMappingTransformationData } from "../../../../transformations/RopidGTFSOisTransformation";
import { IRopidGtfsTransformationData } from "../../../../transformations/RopidGTFSTransformation";
import { DatasetModelName } from "../../../../../../schema-definitions/ropid-gtfs";
import { IRopidGTFSOisMappingData } from "../../../../../../schema-definitions/ropid-gtfs/RopidGTFSOisMapping";
import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
import { RetryDataSource } from "@golemio/core/dist/integration-engine/datasources/RetryDataSource";
import { IFile } from "@golemio/core/dist/integration-engine/datasources/protocol-strategy/IProtocolStrategy";
import { Readable } from "stream";
export declare const ORIGIN_HOSTNAME_HEADER = "x-origin-hostname";
export type ICachedFileMeta = Omit<IFile, "data">;
export type ICachedDataset = ICachedFileMeta & {
    dataset: GTFSDatasets;
};
export declare enum CacheContentType {
    CSV = "CSV",
    JSON = "JSON"
}
export type GTFSDatasets = Exclude<DatasetEnum, DatasetEnum.DEPARTURES_PRESETS>;
type DatasetTransformationMap = {
    [DatasetEnum.PID_GTFS]: AbstractTransformation<IRopidGtfsTransformationData, Readable>;
    [DatasetEnum.RUN_NUMBERS]: AbstractTransformation<IRopidGtfsTransformationData, Readable>;
    [DatasetEnum.CIS_STOPS]: AbstractTransformation<ICisStopsTransformationData, ICisStopsTransformedData>;
    [DatasetEnum.OIS_MAPPING]: AbstractTransformation<IOisMappingTransformationData, IRopidGTFSOisMappingData[]>;
};
export type DatasetMap = {
    [K in GTFSDatasets]: {
        datasource: RetryDataSource;
        transformation: DatasetTransformationMap[K];
        cacheContentType: CacheContentType;
    };
};
export declare const isCachedDataset: (obj: any) => obj is ICachedDataset;
export declare const datasetFileModelMap: (dataset: GTFSDatasets, name: string) => DatasetModelName | DatasetModelName[];
export declare const getTableNameFromModel: (modelName: DatasetModelName) => string;
export declare enum SaveMethod {
    STREAM = "stream",
    SEQUELIZE = "sequelize"
}
export {};
