1import type * as ivs from "@distilled.cloud/aws/ivs";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `ivs:ListStreams`.
7 *
8 * Enumerates the account's live streams in the current region, optionally
9 * filtered by stream health. This is an account-level operation — no
10 * channel is bound, and the grant is on `*`. Provide the implementation
11 * with `Effect.provide(AWS.IVS.ListStreamsHttp)`.
12 * ### Monitoring Live Streams
13 * **Example:** Count Live Streams
14 * ```typescript
15 * // init — account-level, no resource to bind
16 * const listStreams = yield* AWS.IVS.ListStreams();
17 *
18 * // runtime
19 * const { streams } = yield* listStreams();
20 * yield* Effect.log(`${streams.length} live streams`);
21 * ```
22 *
23 * @binding
24 */
25export interface ListStreams extends Binding.Service<
26 ListStreams,
27 "AWS.IVS.ListStreams",
28 () => Effect.Effect<
29 (
30 request?: ivs.ListStreamsRequest,
31 ) => Effect.Effect<ivs.ListStreamsResponse, ivs.ListStreamsError>
32 >
33> {}
34export const ListStreams = Binding.Service<ListStreams>("AWS.IVS.ListStreams");