import type { Features, MValue, Properties } from '../geometry';
export * from './csv';
export * from './gbfs';
export * from './geotiff';
export * from './grib2';
export * from './gtfs';
export * from './image';
export * from './json';
export * from './netcdf';
export * from './osm';
export * from './pmtiles';
export * from './protobuf';
export * from './shapefile';
export * from './wkt';
export * from './xml';
export * from './fetch';
export * from './nadgrid';
export * from './tile';
/** Reader interface. Implemented to read data from either a buffer or a filesystem */
export interface Reader {
    byteLength: number;
    byteOffset: number;
    getBigInt64: (byteOffset: number, littleEndian?: boolean) => bigint;
    getBigUint64: (byteOffset: number, littleEndian?: boolean) => bigint;
    getFloat32: (byteOffset: number, littleEndian?: boolean) => number;
    getFloat64: (byteOffset: number, littleEndian?: boolean) => number;
    getInt16: (byteOffset: number, littleEndian?: boolean) => number;
    getInt32: (byteOffset: number, littleEndian?: boolean) => number;
    getInt8: (byteOffset: number) => number;
    getUint16: (byteOffset: number, littleEndian?: boolean) => number;
    getUint32: (byteOffset: number, littleEndian?: boolean) => number;
    getUint8: (byteOffset: number) => number;
    slice: (begin?: number, end?: number) => DataView;
    setStringEncoding: (encoding: string) => void;
    parseString: (byteOffset: number, byteLength: number) => string;
    getRange: (offset: number, length: number) => Promise<Uint8Array>;
}
/** Feature iteration interface. Implemented by readers to iterate over features */
export interface FeatureIterator<M = Record<string, unknown>, D extends MValue = MValue, P extends Properties = Properties> {
    [Symbol.asyncIterator]: () => AsyncGenerator<Features<M, D, P>>;
}
/** All input types that can be placed into a reader */
export type ReaderInputs = Reader | BufferReader | Buffer | ArrayBufferLike | Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array | DataView;
/**
 * Convenience function that ensures the input is a usable reader
 * @param input - the input data
 * @returns - a BufferReader
 */
export declare function toReader(input: ReaderInputs): Reader;
/** A buffer reader is an extension of a DataView with some extra methods */
export declare class BufferReader extends DataView<ArrayBufferLike> implements Reader {
    textDecoder: import("util").TextDecoder;
    /**
     * @param buffer - the input buffer
     * @param byteOffset - offset in the buffer
     * @param byteLength - length of the buffer
     */
    constructor(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number);
    /**
     * Get a slice of the buffer
     * @param begin - beginning of the slice
     * @param end - end of the slice. If not provided, the end of the data is used
     * @returns - a DataView of the slice
     */
    slice(begin?: number, end?: number): DataView;
    /**
     * Set the text decoder's encoding
     * @param encoding - update the text decoder's encoding
     */
    setStringEncoding(encoding: string): void;
    /**
     * Reads a string from the buffer
     * @param byteOffset - Start of the string
     * @param byteLength - Length of the string
     * @returns - The string
     */
    parseString(byteOffset: number, byteLength: number): string;
    /**
     * Reads a range from the buffer
     * @param offset - the offset of the range
     * @param length - the length of the range
     * @returns - the ranged buffer
     */
    getRange(offset: number, length: number): Promise<Uint8Array>;
}
//# sourceMappingURL=index.d.ts.map