import { IngestionMappingKind } from "./ingestionProperties.js";
export declare enum FieldTransformation {
    PropertyBagArrayToDictionary = "PropertyBagArrayToDictionary",
    DateTimeFromUnixSeconds = "DateTimeFromUnixSeconds",
    DateTimeFromUnixMilliseconds = "DateTimeFromUnixMilliseconds",
    DateTimeFromUnixMicroseconds = "DateTimeFromUnixMicroseconds",
    DateTimeFromUnixNanoseconds = "DateTimeFromUnixNanoseconds"
}
export declare enum ConstantTransformation {
    SourceLocation = "SourceLocation",
    SourceLineNumber = "SourceLineNumber"
}
export type Transformation = FieldTransformation | ConstantTransformation;
interface MappingProperties {
    Field?: string;
    Path?: string;
    Ordinal?: number;
    ConstValue?: {};
    Transform?: Transformation;
}
type MappingPropertiesStrings = {
    [key in keyof MappingProperties]: string;
};
interface ApiColumnMapping {
    Column: string;
    DataType?: string;
    Properties?: MappingPropertiesStrings;
}
export declare abstract class ColumnMapping {
    readonly columnName: string;
    readonly cslDataType?: string | undefined;
    readonly Properties?: MappingProperties | undefined;
    protected constructor(columnName: string, cslDataType?: string | undefined, Properties?: MappingProperties | undefined);
    abstract mappingKind: IngestionMappingKind;
    toApiMapping(): ApiColumnMapping;
}
export declare class CsvColumnMapping extends ColumnMapping {
    readonly columnName: string;
    readonly cslDataType?: string | undefined;
    readonly ordinal?: string | undefined;
    /**
     * @deprecated Use the factory methods instead.
     */
    protected constructor(columnName: string, cslDataType?: string | undefined, ordinal?: string | undefined, constantValue?: {});
    static withOrdinal(columnName: string, ordinal: number, cslDataType?: string): CsvColumnMapping;
    static withConstantValue(columnName: string, constantValue: {}, cslDataType?: string): CsvColumnMapping;
    mappingKind: IngestionMappingKind;
}
export declare class JsonColumnMapping extends ColumnMapping {
    readonly columnName: string;
    readonly jsonPath?: string | undefined;
    /**
     * @deprecated Use the factory methods instead.
     */
    constructor(columnName: string, jsonPath?: string | undefined, cslDataType?: string | null, constantValue?: {}, transform?: Transformation);
    static withPath(columnName: string, path: string, cslDataType?: string, transform?: FieldTransformation): JsonColumnMapping;
    static withConstantValue(columnName: string, constantValue: {}, cslDataType?: string): JsonColumnMapping;
    static withTransform(columnName: string, transform: ConstantTransformation, cslDataType?: string): JsonColumnMapping;
    mappingKind: IngestionMappingKind;
}
export declare class AvroColumnMapping extends ColumnMapping {
    readonly columnName: string;
    private constructor();
    static withPath(columnName: string, path: string, cslDataType?: string, transform?: FieldTransformation): AvroColumnMapping;
    static withField(columnName: string, field: string, cslDataType?: string, transform?: FieldTransformation): AvroColumnMapping;
    static withConstantValue(columnName: string, constantValue: {}, cslDataType?: string): AvroColumnMapping;
    static withTransform(columnName: string, transform: ConstantTransformation, cslDataType?: string): AvroColumnMapping;
    mappingKind: IngestionMappingKind;
}
export declare class ApacheAvroColumnMapping extends ColumnMapping {
    readonly columnName: string;
    private constructor();
    static withPath(columnName: string, path: string, cslDataType?: string, transform?: FieldTransformation): ApacheAvroColumnMapping;
    static withField(columnName: string, field: string, cslDataType?: string, transform?: FieldTransformation): ApacheAvroColumnMapping;
    static withConstantValue(columnName: string, constantValue: {}, cslDataType?: string): ApacheAvroColumnMapping;
    static withTransform(columnName: string, transform: ConstantTransformation, cslDataType?: string): ApacheAvroColumnMapping;
    mappingKind: IngestionMappingKind;
}
export declare class SStreamColumnMapping extends ColumnMapping {
    readonly columnName: string;
    private constructor();
    static withPath(columnName: string, path: string, cslDataType?: string, transform?: FieldTransformation): SStreamColumnMapping;
    static withField(columnName: string, field: string, cslDataType?: string, transform?: FieldTransformation): SStreamColumnMapping;
    static withConstantValue(columnName: string, constantValue: {}, cslDataType?: string): SStreamColumnMapping;
    static withTransform(columnName: string, transform: ConstantTransformation, cslDataType?: string): SStreamColumnMapping;
    mappingKind: IngestionMappingKind;
}
export declare class ParquetColumnMapping extends ColumnMapping {
    readonly columnName: string;
    private constructor();
    static withPath(columnName: string, path: string, cslDataType?: string, transform?: FieldTransformation): ParquetColumnMapping;
    static withField(columnName: string, field: string, cslDataType?: string, transform?: FieldTransformation): ParquetColumnMapping;
    static withConstantValue(columnName: string, constantValue: {}, cslDataType?: string): ParquetColumnMapping;
    static withTransform(columnName: string, transform: ConstantTransformation, cslDataType?: string): ParquetColumnMapping;
    mappingKind: IngestionMappingKind;
}
export declare class OrcColumnMapping extends ColumnMapping {
    readonly columnName: string;
    private constructor();
    static withPath(columnName: string, path: string, cslDataType?: string, transform?: FieldTransformation): OrcColumnMapping;
    static withField(columnName: string, field: string, cslDataType?: string, transform?: FieldTransformation): OrcColumnMapping;
    static withConstantValue(columnName: string, constantValue: {}, cslDataType?: string): OrcColumnMapping;
    static withTransform(columnName: string, transform: ConstantTransformation, cslDataType?: string): OrcColumnMapping;
    mappingKind: IngestionMappingKind;
}
export declare class W3CLogFileMapping extends ColumnMapping {
    readonly columnName: string;
    private constructor();
    static withField(columnName: string, field: string, cslDataType?: string, transform?: FieldTransformation): W3CLogFileMapping;
    static withConstantValue(columnName: string, constantValue: {}, cslDataType?: string): W3CLogFileMapping;
    static withTransform(columnName: string, transform: ConstantTransformation, cslDataType?: string): W3CLogFileMapping;
    mappingKind: IngestionMappingKind;
}
export {};
//# sourceMappingURL=columnMappings.d.ts.map