2026-01-22 13:13:00 +07:00

56 lines
2.0 KiB
TypeScript

import BaseClient from 'remotestoragejs/release/types/baseclient';
interface Place {
id: string;
title: string;
lat: number;
lon: number;
geohash: string;
zoom?: number;
url?: string;
osmId?: string;
osmType?: string;
osmTags?: Record<string, string>;
description?: string;
tags?: string[];
createdAt: string;
updatedAt?: string;
[key: string]: any;
}
declare const _default: {
name: string;
builder: (privateClient: BaseClient) => {
exports: {
/**
* Store a place.
* Generates ID and Geohash if missing.
* Path structure: <geohash-prefix-2>/<geohash-prefix-2>/<id>
*/
store: (placeData: Partial<Place>) => Promise<Place>;
/**
* Remove a place.
* Requires geohash to locate the folder.
*/
remove: (id: string, geohash: string) => Promise<import("remotestoragejs/release/types/interfaces/queued_request_response").QueuedRequestResponse>;
/**
* Get a single place.
* Requires geohash to locate the folder.
*/
get: (id: string, geohash: string) => Promise<unknown>;
/**
* 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.
*/
listByPrefix: (prefix: string) => Promise<unknown>;
/**
* 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).
*/
getPlaces: (prefixes?: string[]) => Promise<Place[]>;
};
};
};
export default _default;