import type { Grib2Sections } from '../';
import type { Reader } from '../../..';
export { getGrib2Template4 } from './templates';
/** The output of `parseGrib2Section4` */
export type Grib2ProductDefinitionSection = ReturnType<typeof parseGrib2Section4>;
export type { Grib2ProductDefinition } from './templates';
/**
 *  Product Definition Section
 *
 * [Read more...](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_sect4.shtml)
 * @param reader - The section to parse
 * @param sections - The other sections that have been parsed (1-3)
 * @returns - Parsed Product Definition Information
 */
export declare function parseGrib2Section4(reader: Reader, sections: Grib2Sections): {
    /** Number of GRIB section */
    sectionNumber: number;
    /** Name of Grib section */
    sectionName: "Product Definition Section";
    /** Length of GRIB section */
    length: number;
    /** Number of coordinate values after template */
    coordinateValues: number;
    /** Product definition template number [Table 4.0](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-0.shtml) */
    productDefinitionTemplate: {
        code: number;
        definition: string;
    };
    /** Product definition */
    values: {
        paramater: {
            parameter: string;
            units: string;
            abbrev: string;
            category: string;
        };
        parameterCategory: number;
        parameterNumber: number;
        genProcessType: {
            code: number;
            value: string;
        };
        backgroundGenProcess: number;
        forecastGenProcess: {
            code: number;
            value: string;
        };
        hoursAfterRefTime: number;
        minAfterRefTime: number;
        unitOfTimeRangeIndicator: {
            code: number;
            value: string;
        };
        forecastTime: {
            code: number;
            value: Date;
        };
        surface1: {
            scale: number;
            value: number;
            type: string;
            unit: string;
        };
        surface1Type: number;
        surface1Scale: number;
        surface1Value: number;
        surface2: {
            scale: number;
            value: number;
            type: string;
            unit: string;
        };
        surface2Type: number;
        surface2Scale: number;
        surface2Value: number;
    };
};
//# sourceMappingURL=index.d.ts.map