1import type {
2 GetTaxSettingsError,
3 GetTaxSettingsRequest,
4 TaxSettings as StripeTaxSettings,
5} from "@distilled.cloud/stripe/stripe";
6import type * as Effect from "effect/Effect";
7import * as Binding from "../Binding.ts";
8import type { RuntimeContext } from "../RuntimeContext.ts";
9import type { TaxSettings } from "./TaxSettings.ts";
10
11export interface RetrieveTaxSettingsRequest extends GetTaxSettingsRequest {}
12
13/**
14 * Retrieve bound Stripe Tax Settings over HTTP. Tax Settings is an
15 * account singleton — the retrieve op has no id field; the bound resource
16 * associates the API key with the host.
17 *
18 * ### Reading Tax Settings
19 * **Example:** Bind and retrieve
20 * ```typescript
21 * const retrieve = yield* Stripe.RetrieveTaxSettings(settings);
22 * const live = yield* retrieve();
23 * ```
24 *
25 * @binding
26 * @product Tax
27 */
28export interface RetrieveTaxSettings extends Binding.Service<
29 RetrieveTaxSettings,
30 "Stripe.RetrieveTaxSettings",
31 (
32 settings: TaxSettings,
33 ) => Effect.Effect<
34 (
35 request?: RetrieveTaxSettingsRequest,
36 ) => Effect.Effect<StripeTaxSettings, GetTaxSettingsError, RuntimeContext>
37 >
38> {}
39
40export const RetrieveTaxSettings = Binding.Service<RetrieveTaxSettings>(
41 "Stripe.RetrieveTaxSettings",
42);