import type { S2CellId } from '../../index.js'; import type { Properties, Value } from '../../index.js'; /** A key-value entry in the multimap */ export interface MMEntry { key: S2CellId; value: V[]; } /** Represents a key-value store */ export interface MultiMapStore { length: number; get: ((key: number | S2CellId) => V[] | undefined) | ((key: number | S2CellId) => Promise); set: (key: number | S2CellId, value: V) => void; has: (key: number | S2CellId) => boolean | Promise; entries: () => AsyncGenerator>; [Symbol.asyncIterator]: () => AsyncGenerator>; close: () => void; } /** A constructor for a vector store */ export type MultiMapStoreConstructor = new () => MultiMapStore; /** * # MultiMap Store * * ## Description * A local multimap store * * ## Usage * ```ts * import { MultiMap } from 'gis-tools-ts'; * * interface Data { name: string }; * * const mm = new MultiMap(); * // set a key * mm.set(1n, { name: 'test' }); * mm.set(1n, { name: 'test2' }); * // get a key * const { name } = mm.get(1n); // [{ name: 'test' }, { name: 'test2' }] * // check if a key exists * mm.has(1n); // true * // get length of the store * console.log(mm.length); // 2 * * // iterate over the store * for await (const entry of mm) console.log(entry); * * // close the store * mm.close(); * ``` */ export declare class MultiMap implements MultiMapStore { #private; /** Builds a new MultiMap */ constructor(); /** @returns - the length of the map */ get length(): number; /** * Adds a value to the list of values associated with a key * @param key - the key * @param value - the value to store */ set(key: number | S2CellId, value: V): void; /** * Check if the key exists * @param key - the key * @returns true if the key exists */ has(key: number | S2CellId): boolean; /** * Gets the list of values associated with a key * @param key - the key * @returns the list of values if the map contains values for the key */ get(key: number | S2CellId): V[] | undefined; /** * iterate through the values * @yields {V} - the values iterator */ entries(): AsyncGenerator>; /** * iterate through the values * @returns - an iterator */ [Symbol.asyncIterator](): AsyncGenerator>; /** Closes the store */ close(): void; } //# sourceMappingURL=index.d.ts.map