@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
TypeScript
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>>;
}