import { Group } from "./group";
import type { NetCDF4Module, DatasetOptions } from "./types";
import type { LazySource } from "./lazy";
export declare class NetCDF4 extends Group {
    private filename?;
    private mode;
    private options;
    private module;
    private initialized;
    private ncid;
    private _isOpen;
    private memorySource?;
    private lazySource?;
    constructor(filename?: string | undefined, mode?: string, options?: DatasetOptions);
    initialize(): Promise<void>;
    static Dataset(filename: string, mode?: string, options?: DatasetOptions): Promise<NetCDF4>;
    static fromBlob(blob: Blob, mode?: string, options?: DatasetOptions): Promise<NetCDF4>;
    /**
     * Open a dataset lazily, reading byte ranges on demand rather than loading the
     * whole file into memory. `source` may be a Blob/File (browser, worker-only), a
     * file path (Node), or any custom LazyReader. Read-only.
     */
    static fromLazy(source: LazySource, mode?: string, options?: DatasetOptions, filename?: string): Promise<NetCDF4>;
    static fromArrayBuffer(buffer: ArrayBuffer, mode?: string, options?: DatasetOptions): Promise<NetCDF4>;
    private static makeVirtualFilename;
    static fromMemory(data: Uint8Array | ArrayBuffer, mode?: string, options?: DatasetOptions, filename?: string): Promise<NetCDF4>;
    private open;
    get file_format(): string;
    get disk_format(): string;
    get filepath(): string;
    get isopen(): boolean;
    isInitialized(): boolean;
    getModule(): NetCDF4Module;
    close(): Promise<void>;
    sync(): Promise<void>;
    __aenter__(): Promise<NetCDF4>;
    __aexit__(): Promise<void>;
    openFile(path: string, mode?: "r" | "w" | "a"): Promise<number>;
    createFile(path: string, mode?: number): Promise<number>;
    closeFile(ncid: number): Promise<void>;
    defineDimension(ncid: number, name: string, size: number): Promise<number>;
    defineVariable(ncid: number, name: string, type: number, dimids: number[]): Promise<number>;
    endDefineMode(ncid: number): Promise<void>;
    putVariableDouble(ncid: number, varid: number, data: Float64Array): Promise<void>;
    getVariableDouble(ncid: number, varid: number, size: number): Promise<Float64Array>;
    private createMockModule;
    private mountMemoryData;
    private mountLazyData;
    toArrayBuffer(): Promise<ArrayBuffer>;
    toBlob(type?: string): Promise<Blob>;
    toString(): string;
}
//# sourceMappingURL=netcdf4.d.ts.map