export interface EmscriptenModule {
    ccall: (name: string, returnType: string, argTypes: string[], args: any[]) => any;
    cwrap: (name: string, returnType: string, argTypes: string[]) => (...args: any[]) => any;
    getValue: (ptr: number, type: string) => number;
    setValue: (ptr: number, value: number, type: string) => void;
    UTF8ToString: (ptr: number) => string;
    stringToUTF8: (str: string, outPtr: number, maxBytesToWrite: number) => void;
    lengthBytesUTF8: (str: string) => number;
    _malloc: (size: number) => number;
    _free: (ptr: number) => void;
    allocateString: (str: string) => number;
    freeString: (ptr: number) => void;
    FS: any;
    ready: Promise<EmscriptenModule>;
    HEAPF64: Float64Array;
    HEAP32: Int32Array;
    HEAPU8: Uint8Array;
}
export interface NetCDF4Module extends EmscriptenModule {
    nc_open: (path: string, mode: number) => {
        result: number;
        ncid: number;
    };
    nc_close: (ncid: number) => number;
    nc_create: (path: string, mode: number) => {
        result: number;
        ncid: number;
    };
    nc_def_dim: (ncid: number, name: string, len: number) => {
        result: number;
        dimid: number;
    };
    nc_def_var: (ncid: number, name: string, xtype: number, ndims: number, dimids: number[]) => {
        result: number;
        varid: number;
    };
    nc_put_var_double: (ncid: number, varid: number, data: Float64Array) => number;
    nc_get_var_double: (ncid: number, varid: number, size: number) => {
        result: number;
        data: Float64Array;
    };
    nc_enddef: (ncid: number) => number;
    nc_inq_ndims: (ncid: number) => {
        result: number;
        ndims: number;
    };
    nc_inq_unlimdim: (ncid: number) => {
        result: number;
        unlimdimid: number;
    };
    nc_inq_dim: (ncid: number, dimid: number) => {
        result: number;
        name: string;
        len: number;
    };
    nc_inq_nvars: (ncid: number) => {
        result: number;
        nvars: number;
    };
    nc_inq_var: (ncid: number, varid: number) => {
        result: number;
        name: string;
        xtype: number;
        ndims: number;
        dimids: number[];
        natts: number;
    };
    nc_inq_natts: (ncid: number) => {
        result: number;
        natts: number;
    };
    nc_inq_attname: (ncid: number, varid: number, attnum: number) => {
        result: number;
        name: string;
    };
    nc_inq_att: (ncid: number, varid: number, name: string) => {
        result: number;
        xtype: number;
        len: number;
    };
    nc_get_att_text: (ncid: number, varid: number, name: string, len: number) => {
        result: number;
        text: string;
    };
    nc_get_att_double: (ncid: number, varid: number, name: string, len: number) => {
        result: number;
        values: Float64Array;
    };
}
export interface NetCDF4WasmOptions {
    wasmPath?: string;
    memoryInitialPages?: number;
    memoryMaximumPages?: number;
}
export interface DatasetOptions extends NetCDF4WasmOptions {
    format?: string;
    diskless?: boolean;
    persist?: boolean;
    keepweakref?: boolean;
    memory?: ArrayBuffer;
    /**
     * Open the file lazily: read byte ranges on demand instead of loading the
     * whole file into memory. Read-only. In the browser this requires running
     * inside a Web Worker (see the lazy module). Defaults to false.
     */
    lazy?: boolean;
    /** Lazy cache block size in bytes (default 64 KiB). */
    blockSize?: number;
    /** Maximum number of cached lazy blocks (default 256). */
    maxCacheBlocks?: number;
}
export interface MemoryDatasetSource {
    data: ArrayBuffer | Uint8Array;
    filename?: string;
}
export interface LazyDatasetSource {
    reader: import("./lazy/types").LazyReader;
    filename: string;
}
export type DatasetSource = string | Blob | ArrayBuffer | Uint8Array;
export interface VariableOptions {
    zlib?: boolean;
    complevel?: number;
    shuffle?: boolean;
    fletcher32?: boolean;
    contiguous?: boolean;
    chunksizes?: number[];
}
declare global {
    function NetCDF4Module(options?: any): Promise<EmscriptenModule>;
}
//# sourceMappingURL=types.d.ts.map