import { BaseEntity } from "./BaseEntity.js"; import { PoiItemNormalized } from "./serverDataType/Poi.js"; import type { AddPoiData } from "./EndpointApi.types.js"; export declare class Poi extends BaseEntity { static entityType: string; static entityTag: string; /** Bloc de création où injecter les champs costum (CostumScope). */ static COSTUM_ADD_CONSTANT: string; static SCHEMA_CONSTANTS: string[]; static ADD_BLOCKS: Map<"PROFIL_IMAGE" | "ADD_POI", "updateImageProfil" | "addPoi">; static UPDATE_BLOCKS: Map<"UPDATE_BLOCK_DESCRIPTION" | "UPDATE_BLOCK_INFO" | "UPDATE_BLOCK_LOCALITY" | "UPDATE_BLOCK_SLUG" | "PROFIL_IMAGE", "updateImageProfil" | "updateDescription" | "updateLocality" | "updateInfo" | "updateSlug">; defaultFields: Record; removeFields: string[]; transforms: Record any>; _add: (payload: Record) => Promise; _update: (payload: Record) => Promise; addPoi(data?: Partial): Promise; /** * Supprime ce POI via `DELETE_ELEMENT` (`type=poi`). * * **Garde** : auteur du POI (`serverData.creator`) OU administrateur de * l'organisation/projet parent (via `serverData.parent` × hiérarchie). * cf. {@link BaseEntity#_deleteViaElement}. * * Après succès : données vidées + `_isDeleted = true`. * * @param reason - Raison transmise au backend (audit). Défaut `"delete poi"`. * @throws {ApiError} 400 si le POI n'a pas d'id. * @throws {ApiError} 403 si ni auteur ni admin du parent. */ delete(reason?: string): Promise; getOrganizations(): Promise; getProjects(): Promise; getEvents(): Promise; getPois(): Promise; getBadgesIssuer(): Promise; /** * {@inheritDoc BaseEntity#getNews} * * Récupère les actualités du POI. */ getNews(): Promise; /** * {@inheritDoc BaseEntity#getSubscribers} * * Récupère les abonnés du POI. */ getSubscribers(data?: Parameters["getSubscribers"]>[0]): Promise>; project(): Promise; poi(): Promise; event(): Promise; form(): Promise; badge(): Promise; /** * {@inheritDoc BaseEntity#news} * * Crée une instance de news et la récupère si nécessaire. */ news(): Promise; /** * {@inheritDoc BaseEntity#follow} * * Suivre un POI. * Cette action permet à l'utilisateur de suivre un POI. */ follow(): Promise; /** * {@inheritDoc BaseEntity#unfollow} * * Se désabonne d'un POI. */ unfollow(): Promise; }