1import type * as textract from "@distilled.cloud/aws/textract";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `textract:AnalyzeExpense` — synchronous analysis of
7 * invoices and receipts, extracting summary fields (vendor, total, dates)
8 * and line-item groups.
9 *
10 * ### Synchronous Analysis
11 * **Example:** Analyze an Invoice
12 * ```typescript
13 * // init
14 * const analyzeExpense = yield* AWS.Textract.AnalyzeExpense();
15 *
16 * // runtime
17 * const result = yield* analyzeExpense({
18 * Document: { Bytes: receiptBytes },
19 * });
20 * const fields = result.ExpenseDocuments?.[0]?.SummaryFields;
21 * ```
22 *
23 * @binding
24 */
25export interface AnalyzeExpense extends Binding.Service<
26 AnalyzeExpense,
27 "AWS.Textract.AnalyzeExpense",
28 () => Effect.Effect<
29 (
30 request: textract.AnalyzeExpenseRequest,
31 ) => Effect.Effect<
32 textract.AnalyzeExpenseResponse,
33 textract.AnalyzeExpenseError
34 >
35 >
36> {}
37export const AnalyzeExpense = Binding.Service<AnalyzeExpense>(
38 "AWS.Textract.AnalyzeExpense",
39);