1import type * as ivsrealtime from "@distilled.cloud/aws/ivs-realtime";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Stop and delete a composition — any broadcast to the composition's
7 * destinations ends. Compositions are addressed by the server-generated
8 * ARN returned by `StartComposition`.
9 *
10 * ### Compositing a Stage
11 * **Example:** Stop a running composition
12 * ```typescript
13 * // init
14 * const stopComposition = yield* IVSRealtime.StopComposition();
15 *
16 * // runtime
17 * yield* stopComposition({ arn: compositionArn });
18 * ```
19 *
20 * @binding
21 */
22export interface StopComposition extends Binding.Service<
23 StopComposition,
24 "AWS.IVSRealtime.StopComposition",
25 () => Effect.Effect<
26 (
27 request: ivsrealtime.StopCompositionRequest,
28 ) => Effect.Effect<
29 ivsrealtime.StopCompositionResponse,
30 ivsrealtime.StopCompositionError
31 >
32 >
33> {}
34export const StopComposition = Binding.Service<StopComposition>(
35 "AWS.IVSRealtime.StopComposition",
36);