import BaseClient from 'remotestoragejs/release/types/baseclient'; import { FromSchema } from 'json-schema-to-ts'; declare const placeSchema: { readonly type: "object"; readonly properties: { readonly id: { readonly type: "string"; }; readonly title: { readonly type: "string"; }; readonly lat: { readonly type: "number"; }; readonly lon: { readonly type: "number"; }; readonly geohash: { readonly type: "string"; }; readonly zoom: { readonly type: "number"; }; readonly url: { readonly type: "string"; }; readonly osmId: { readonly type: "string"; }; readonly osmType: { readonly type: "string"; }; readonly osmTags: { readonly type: "object"; readonly additionalProperties: { readonly type: "string"; }; }; readonly description: { readonly type: "string"; }; readonly tags: { readonly type: "array"; readonly items: { readonly type: "string"; }; readonly default: readonly []; }; readonly createdAt: { readonly type: "string"; readonly format: "date-time"; }; readonly updatedAt: { readonly type: "string"; readonly format: "date-time"; }; }; readonly required: readonly ["id", "title", "lat", "lon", "geohash", "createdAt"]; }; /** * Represents a Place object. * * Core properties enforced by schema: * - `id`: Unique identifier (ULID) * - `title`: Name of the place * - `lat`: Latitude * - `lon`: Longitude * - `geohash`: Geohash for indexing * - `createdAt`: ISO date string * * Optional properties: * - `description`: Text description * - `zoom`: Map zoom level * - `url`: Related URL * - `osmId`, `osmType`, `osmTags`: OpenStreetMap data * - `tags`: Array of string tags * - `updatedAt`: ISO date string */ export type Place = FromSchema & { [key: string]: any; }; export interface PlacesClient { /** * Store a place. * Generates ID and Geohash if missing. * Path structure: `//` * * @param placeData - The data of the place to store. * @returns The stored place object. */ store(placeData: Partial): Promise; /** * Remove a place. * Requires geohash to locate the folder. * * @param id - The ID of the place to remove. * @param geohash - The geohash of the place. */ remove(id: string, geohash: string): Promise; /** * Get a single place. * Requires geohash to locate the folder. * * @param id - The ID of the place to retrieve. * @param geohash - The geohash of the place. * @returns The place object. */ get(id: string, geohash: string): Promise; /** * List places matching a geohash prefix. * Supports 2-char ("ab") or 4-char ("abcd") prefixes. * If 2-char, it returns the sub-folders (prefixes), not places. * If 4-char, it returns the places in that sector. * * @param prefix - The geohash prefix to filter by. * @returns A map of objects found at the prefix. */ listByPrefix(prefix: string): Promise; /** * Get places from specific prefixes. * * @param prefixes - Optional array of 4-character geohash prefixes to load (e.g. ['w1q7', 'w1q8']). * If not provided, it will attempt to scan ALL prefixes (recursive). * @returns An array of places. */ getPlaces(prefixes?: string[]): Promise; } declare const _default: { name: string; builder: (privateClient: BaseClient) => { exports: PlacesClient; }; }; export default _default;