import { DeclarativeAttribute, DeclarativeDataset, DeclarativeFact, DeclarativeLdm, DeclarativeReference, GrainIdentifier, AnalyzeCsvResponseConfig, ReadCsvFileManifestsResponse } from "@gooddata/api-client-tiger";
import { IWorkspaceDescriptor } from "@gooddata/sdk-backend-spi";
import { IDataSourceConnectionInfo } from "@gooddata/sdk-backend-tiger";
export interface ICsvAnalyzeContext {
    dataSource: IDataSourceConnectionInfo;
    workspace?: IWorkspaceDescriptor;
    ldm?: DeclarativeLdm;
    matchedDataset?: DeclarativeDataset;
    csvAnalyzedData: IAnalyzedData;
    originalCsvFileName?: string;
    originalManifest?: ReadCsvFileManifestsResponse;
}
export interface IDatasetField {
    id: string;
    title: string;
    reference: DeclarativeReference | undefined;
}
export interface IAnalyzedData {
    csvFileName: string;
    columns: IAnalyzedColumn[];
    previewData: string[][];
    csvLocation: string;
    csvConfig?: AnalyzeCsvResponseConfig;
}
export interface IAnalyzedColumn {
    name: string;
    dataType: string;
    fieldType: DataType;
    formats: string[];
    mappedField?: IDatasetField;
}
export interface IDatasetFields {
    grain: Map<string, GrainIdentifier>;
    attributes: Map<string, DeclarativeAttribute>;
    facts: Map<string, DeclarativeFact>;
    dates: Map<string, DeclarativeDataset>;
    references: Map<string, DeclarativeReference>;
}
export declare enum DataType {
    PRIMARY = "primary",
    ATTRIBUTE = "attribute",
    FACT = "fact",
    REFERENCE = "reference",
    DATE = "date",
    INT = "int",
    NUMERIC = "numeric",
    STRING = "string",
    BOOLEAN = "boolean",
    DATE_TIME = "date_time"
}
export declare enum LdmSourceDataType {
    INT = "int",
    NUMERIC = "numeric",
    STRING = "string",
    BOOLEAN = "boolean",
    DATE = "date",
    TIMESTAMP = "timestamp",
    TIMESTAMP_TZ = "timestamp_tz"
}
export declare enum CsvDataType {
    UINT = "uint",
    FLOAT = "float",
    DECIMAL = "decimal",
    TIME = "time",
    DATE = "date",
    INT_64 = "int64",
    DOUBLE = "double",
    STRING = "string",
    BOOL = "bool",
    TIMESTAMP = "timestamp[s]"
}
