1import type * as geoMaps from "@distilled.cloud/aws/geo-maps";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `geo-maps:GetGlyphs` — fetch a glyph (font) PBF range
7 * used to render map labels for a font stack.
8 *
9 * geo-maps is a standalone, pay-per-call Amazon Location API with no resource
10 * to manage: the binding takes no arguments and grants the function
11 * `geo-maps:GetGlyphs`. Requests and responses are raw distilled types; the
12 * glyph payload is returned as `Blob` (`Uint8Array`).
13 *
14 * ### Fetching Glyphs
15 * Provide the `GetGlyphsHttp` implementation layer on the Function effect
16 * (`.pipe(Effect.provide(AWS.GeoMaps.GetGlyphsHttp))`), bind in the init
17 * phase, then call the client at runtime.
18 *
19 * **Example:** Fetch a glyph range for a font stack
20 * ```typescript
21 * // init
22 * const getGlyphs = yield* AWS.GeoMaps.GetGlyphs();
23 *
24 * // runtime — FontUnicodeRange is a 256-glyph PBF page like "0-255.pbf"
25 * const glyphs = yield* getGlyphs({
26 * FontStack: "Amazon Ember Regular",
27 * FontUnicodeRange: "0-255.pbf",
28 * });
29 * const bytes = glyphs.Blob; // Uint8Array | undefined (PBF)
30 * ```
31 *
32 * @binding
33 */
34export interface GetGlyphs extends Binding.Service<
35 GetGlyphs,
36 "AWS.GeoMaps.GetGlyphs",
37 () => Effect.Effect<
38 (
39 request: geoMaps.GetGlyphsRequest,
40 ) => Effect.Effect<geoMaps.GetGlyphsResponse, geoMaps.GetGlyphsError>
41 >
42> {}
43export const GetGlyphs = Binding.Service<GetGlyphs>("AWS.GeoMaps.GetGlyphs");