import type { Units } from '@modusjs/units';
export declare let localLabConfigs: LocalLabConfig[];
export declare const labConfigs: {
    [k: string]: {
        [k: string]: LabConfig;
    };
};
export declare const labConfigsMap: Map<string, LabConfig>;
export declare type Analyte = {
    Element: string;
    ValueUnit?: string;
    Value?: number;
    ValueType?: any;
    ValueDesc?: any;
    UCUM_ValueUnits?: string;
    ExtractionMethod?: string;
    MeasurementMethod?: string;
    ModusTestID?: string;
    CsvHeader?: string;
};
export declare type LabType = 'Soil' | 'Plant';
export declare type LabConfig = {
    name: string;
    type: string;
    analytes: Record<string, Analyte>;
    mappings: Record<string, keyof typeof toModusJsonPath | undefined | Array<keyof typeof toModusJsonPath>>;
    headers: string[];
    units: Units;
    examplesKey?: string;
    depthInfo?: Depth | ((row: any) => Depth | undefined);
    packageName?: string | ((row: any) => string);
};
export declare type LocalLabConfig = {
    units?: Units;
    name: string;
    headers?: string[];
    analytes?: Record<string, Analyte>;
    mappings: Record<string, string | undefined | string[]>;
    examplesKey?: string;
    depthInfo?: Depth | ((row: any) => Depth | undefined);
    packageName?: string | ((row: any) => string);
    type: string;
};
export declare type IndustryLabConfig = {
    name: string;
    analytes: Record<string, Analyte>;
    mappings?: Record<string, string | undefined | string[]>;
    type: string;
};
declare type Depth = {
    Name?: string;
    DepthUnit?: string;
    StartingDepth?: number;
    EndingDepth?: number;
    ColumnDepth?: number;
};
declare type ModusMapping = {
    path: string;
    type?: string;
    fullpath?: string;
    parse?: string | undefined;
};
export declare const toModusJsonPath: {
    ReportDate: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    ReportID: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    ReportType: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    Crop: {
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    PlantPart: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    Grower: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    GrowerName: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    FarmName: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    Farm: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    Field: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    FieldName: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    SubField: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    SubFieldName: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    LabEventID: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    LabID: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    DateProcessed: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    DateReceived: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    LabContactName: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    LabContactAddress: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    LabContactPhone: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    ClientAddress: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    ClientAddress2: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
    };
    ClientName: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    ClientAccountNumber: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    ClientZip: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    ClientState: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    ClientCity: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    ClientCompany: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    ClientPhone: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    LabReportID: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    SampleNumber: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    SampleContainerID: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    FMISSampleID: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    StartingDepth: {
        type: string;
        path: string;
        fullpath: string;
        parse: string;
        description: string;
        slim: string;
    };
    EndingDepth: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
        slim: string;
    };
    ColumnDepth: {
        type: string;
        path: string;
        fullpath: string;
        description: string;
    };
};
declare type DetailedMapping = {
    key: string;
    mm: ModusMapping;
};
export declare function toDetailedMappings(mm: LabConfig['mappings']): Array<DetailedMapping>;
export declare function parseDate(date: any): Date;
export declare function parseMappingValue(val: any, mapping: ModusMapping): any;
export declare function setMappings(modusPiece: any, type: string, row: any, labConfig?: LabConfig): any;
export {};
