UNPKG

@blockprotocol/external-api

Version:

Implementation of the Block Protocol external API service specification for blocks and embedding applications

68 lines (67 loc) 4.23 kB
import { ServiceHandler } from "@blockprotocol/core"; /** * There's an issue when importing useExternalApiEmbedderService from @blockprotocol/externalApi/react in hashintel/hash: * NextJS's output file tracing does not include externalApi-service.json, and yet an import statement for it is preserved. * This leads to a 'module cannot be found error'. For now, commenting out the import of the JSON from this file. * @todo restore this when module resolution issue resolved * @see https://app.asana.com/0/1202542409311090/1202614421149286/f */ import { BlockExternalApiMessageCallbacks, BlockExternalApiMessages, MapboxCanRetrieveAddressData, MapboxCanRetrieveAddressResponseData, MapboxForwardGeocodingData, MapboxRetrieveAddressData, MapboxRetrieveDirectionsData, MapboxRetrieveDirectionsResponseData, MapboxRetrieveIsochronesData, MapboxRetrieveIsochronesResponseData, MapboxRetrieveStaticMapData, MapboxReverseGeocodingData, MapboxSuggestAddressData } from "./types.js"; /** * Creates a handler for the externalApi service for the block. * Register callbacks in the constructor or afterwards using the 'on' method to react to messages from the embedder. * Call the relevant methods to send messages to the embedder. */ export declare class ExternalApiBlockHandler extends ServiceHandler implements BlockExternalApiMessages { constructor({ callbacks, element, }: { callbacks?: Partial<BlockExternalApiMessageCallbacks>; element?: HTMLElement | null; }); getInitPayload(): Record<string, any>; /** * Registers multiple callbacks at once. * Useful for bulk updates to callbacks after the service is first initialised. */ registerCallbacks(callbacks: Partial<BlockExternalApiMessageCallbacks>): void; /** * Removes multiple callbacks at once. * Useful when replacing previously registered callbacks */ removeCallbacks(callbacks: Partial<BlockExternalApiMessageCallbacks>): void; /** * Call the provided function when the named message is received, passing the data/errors object from the message. * If the named message expects a response, the callback should provide the expected data/errors object as the return. * @param messageName the message name to listen for * @param handlerFunction the function to call when the message is received, with the message data / errors */ on<K extends keyof BlockExternalApiMessageCallbacks>(this: ExternalApiBlockHandler, messageName: K, handlerFunction: BlockExternalApiMessageCallbacks[K]): void; /** Mapbox Geocoding API */ mapboxForwardGeocoding({ data }: { data?: MapboxForwardGeocodingData; }): Promise<import("@blockprotocol/core").MessageData<import("./mapbox-types.js").GeocodeResponse, null>>; mapboxReverseGeocoding({ data }: { data?: MapboxReverseGeocodingData; }): Promise<import("@blockprotocol/core").MessageData<import("./mapbox-types.js").GeocodeResponse, null>>; /** Mapbox Directions API */ mapboxRetrieveDirections({ data }: { data?: MapboxRetrieveDirectionsData; }): Promise<import("@blockprotocol/core").MessageData<MapboxRetrieveDirectionsResponseData, null>>; /** Mapbox Isochrone API */ mapboxRetrieveIsochrones({ data }: { data?: MapboxRetrieveIsochronesData; }): Promise<import("@blockprotocol/core").MessageData<MapboxRetrieveIsochronesResponseData, null>>; /** Mapbox Autofill API */ mapboxSuggestAddress({ data }: { data?: MapboxSuggestAddressData; }): Promise<import("@blockprotocol/core").MessageData<import("./mapbox-types.js").AutofillSuggestionResponse, null>>; mapboxRetrieveAddress({ data }: { data?: MapboxRetrieveAddressData; }): Promise<import("@blockprotocol/core").MessageData<import("./mapbox-types.js").AutofillRetrieveResponse, null>>; mapboxCanRetrieveAddress({ data }: { data?: MapboxCanRetrieveAddressData; }): Promise<import("@blockprotocol/core").MessageData<MapboxCanRetrieveAddressResponseData, null>>; /** Mapbox Static Maps API */ mapboxRetrieveStaticMap({ data }: { data?: MapboxRetrieveStaticMapData; }): Promise<import("@blockprotocol/core").MessageData<string, null>>; }