import { DeclarativeDataset, DeclarativeLdm, ImportCsvRequest, ReadCsvFileManifestsResponse } from "@gooddata/api-client-tiger";
import { ITigerSpecificFunctions } from "../../lib/tigerSpecificFunctions";
import { DeclarativeLogicalModel, IDataSourceApiResult, IDataSourceConnectionInfo } from "@gooddata/sdk-backend-tiger";
import { IAnalyzedData, ICsvAnalyzeContext } from "../types/types";
import { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
import { IWorkspaceDescriptor } from "@gooddata/sdk-backend-spi/esm/workspace";
import { IDatasetColumn } from "../PreviewDialog/types";
import { DataSourceInfo } from "../../HOCs/types";
export declare const CSV_WORKSPACE_ID = "gdc_csv_first_ws";
export declare const DEFAULT_DATASOURCE_NAME = "Untitled CSV data source";
export declare const DEFAULT_FIRST_WORKSPACE_NAME = "Your First Workspace";
export declare const findExistingCsvWorkspace: (backend: IAnalyticalBackend) => Promise<IWorkspaceDescriptor>;
export declare const findExistingCsvLdm: (tigerSpecificFunctions: ITigerSpecificFunctions) => Promise<DeclarativeLogicalModel>;
export declare const findExistingCsvDataset: (ldm: DeclarativeLdm) => DeclarativeDataset | undefined;
export declare const createCsvDataSource: (tigerSpecificFunctions: ITigerSpecificFunctions, dataSourceName?: string) => Promise<IDataSourceApiResult>;
export declare const updateCsvDataSource: (tigerSpecificFunctions: ITigerSpecificFunctions, dataSourceInfo: DataSourceInfo) => Promise<IDataSourceApiResult>;
export declare const analyzeFile: (tigerSpecificFunctions: ITigerSpecificFunctions, location: string, fileName: string, converterVersion?: number, forceHasHeader?: boolean) => Promise<IAnalyzedData>;
/**
 * Lookup if a dataset in LDM with all fields are mapped to the CSV columns.
 * If so, users will edit the dataset existing fields (change fact/attribute/date title, but keep ID) instead of creating new fields.
 * Return IProvisioningWorkspace with existing ldm/dataset.
 */
export declare const buildCsvAnalyzeContext: (dataSource: IDataSourceConnectionInfo, analyzedData: IAnalyzedData, enableMergeLdm: boolean, originalFileName?: string, originalManifest?: ReadCsvFileManifestsResponse, workspace?: IWorkspaceDescriptor, ldm?: DeclarativeLdm) => ICsvAnalyzeContext;
export declare const buildCsvImportRequest: (analyzedData: IAnalyzedData, tableName: string, datasetColumns: IDatasetColumn[], handleColumnTypes?: boolean) => ImportCsvRequest;
export declare const provisionFirstWorkspace: (tigerSpecificFunctions: ITigerSpecificFunctions) => Promise<string>;
/**
 * Check if the csv is re-load or new upload:
 * - If reupload, CSV table name should be same as in mapped dataset.
 * - If new upload, generate CSV table name from CSV filename
 */
export declare const buildCsvTableName: (importCsvContext: ICsvAnalyzeContext, datasetName: string) => string;
