1import type {
2 FileLink as StripeFileLink,
3 CreateFileLinkError,
4 CreateFileLinkRequest,
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 File Link over HTTP. Account-scoped — binds the API key
12 * onto the host, not a specific file link resource.
13 *
14 * ### Creating a File Link at runtime
15 * **Example:** Bind and create
16 * ```typescript
17 * const create = yield* Stripe.CreateFileLink();
18 * const link = yield* create({
19 * file: "file_123",
20 * });
21 * ```
22 *
23 * @binding
24 * @product Files
25 */
26export interface CreateFileLink extends Binding.Service<
27 CreateFileLink,
28 "Stripe.CreateFileLink",
29 () => Effect.Effect<
30 (
31 request: CreateFileLinkRequest,
32 ) => Effect.Effect<StripeFileLink, CreateFileLinkError, RuntimeContext>
33 >
34> {}
35
36export const CreateFileLink = Binding.Service<CreateFileLink>(
37 "Stripe.CreateFileLink",
38);