1import type * as location from "@distilled.cloud/aws/location";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Map as LocationMap } from "./Map.ts";
5
6/**
7 * `GetMapGlyphs` request with `MapName` injected from the bound
8 * resource.
9 */
10export interface GetMapGlyphsRequest extends Omit<
11 location.GetMapGlyphsRequest,
12 "MapName"
13> {}
14
15/**
16 * Retrieves a glyph range (font PBF) used to render map labels.
17 *
18 * Runtime binding for the `GetMapGlyphs` operation (IAM action
19 * `geo:GetMapGlyphs`), scoped to one {@link LocationMap | Map}. Provide the implementation with
20 * `Effect.provide(AWS.Location.GetMapGlyphsHttp)`.
21 *
22 * ### Serving Map Assets
23 * **Example:** Serve Glyphs
24 * ```typescript
25 * const getGlyphs = yield* Location.GetMapGlyphs(map);
26 *
27 * const glyphs = yield* getGlyphs({
28 * FontStack: "Arial Regular",
29 * FontUnicodeRange: "0-255.pbf",
30 * });
31 * // glyphs.Blob → protobuf-encoded glyph bytes
32 * ```
33 *
34 * @binding
35 */
36export interface GetMapGlyphs extends Binding.Service<
37 GetMapGlyphs,
38 "AWS.Location.GetMapGlyphs",
39 (
40 map: LocationMap,
41 ) => Effect.Effect<
42 (
43 request: GetMapGlyphsRequest,
44 ) => Effect.Effect<
45 location.GetMapGlyphsResponse,
46 location.GetMapGlyphsError
47 >
48 >
49> {}
50export const GetMapGlyphs = Binding.Service<GetMapGlyphs>(
51 "AWS.Location.GetMapGlyphs",
52);