1import type {
2 IssuingCardholder as StripeIssuingCardholder,
3 CreateIssuingCardholderError,
4 CreateIssuingCardholderRequest,
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";
9
10/**
11 * Create a Stripe Issuing Cardholder over HTTP. Account-scoped — binds
12 * the API key onto the host, not a specific cardholder resource.
13 *
14 * ### Creating a Cardholder at runtime
15 * **Example:** Bind and create
16 * ```typescript
17 * const create = yield* Stripe.CreateIssuingCardholder();
18 * const cardholder = yield* create({
19 * name: "Alice Example",
20 * billing: {
21 * address: {
22 * line1: "123 Main Street",
23 * city: "San Francisco",
24 * state: "CA",
25 * postal_code: "94111",
26 * country: "US",
27 * },
28 * },
29 * });
30 * ```
31 *
32 * @binding
33 * @product Issuing
34 */
35export interface CreateIssuingCardholder extends Binding.Service<
36 CreateIssuingCardholder,
37 "Stripe.CreateIssuingCardholder",
38 () => Effect.Effect<
39 (
40 request: CreateIssuingCardholderRequest,
41 ) => Effect.Effect<
42 StripeIssuingCardholder,
43 CreateIssuingCardholderError,
44 RuntimeContext
45 >
46 >
47> {}
48
49export const CreateIssuingCardholder = Binding.Service<CreateIssuingCardholder>(
50 "Stripe.CreateIssuingCardholder",
51);