import * as sqs from "@distilled.cloud/aws/sqs"; import * as Effect from "effect/Effect"; import * as Binding from "../../Binding.ts"; import type { Queue } from "./Queue.ts"; export interface ChangeMessageVisibilityRequest extends Omit { } /** * Runtime binding for `sqs:ChangeMessageVisibility`. * * Bind this operation to a {@link Queue} inside a function runtime to extend * or shrink the visibility timeout of an in-flight message — e.g. extend it * while a slow job is still processing, or set it to `0` to release the * message back to the queue immediately. The binding grants the host * function `sqs:ChangeMessageVisibility` on the queue. Provide the * `ChangeMessageVisibilityHttp` layer on the Function to implement the * binding. * ### Changing Message Visibility * **Example:** Release a Message Back to the Queue * ```typescript * // init (provide SQS.ChangeMessageVisibilityHttp on the Function) * const changeMessageVisibility = yield* SQS.ChangeMessageVisibility(queue); * * // runtime: make the message immediately receivable again * yield* changeMessageVisibility({ * ReceiptHandle: message.ReceiptHandle!, * VisibilityTimeout: 0, * }); * ``` * * **Example:** Extend Processing Time for a Slow Job * ```typescript * yield* changeMessageVisibility({ * ReceiptHandle: message.ReceiptHandle!, * VisibilityTimeout: 600, * }); * ``` * * @binding */ export interface ChangeMessageVisibility extends Binding.Service Effect.Effect<(request: ChangeMessageVisibilityRequest) => Effect.Effect>> { } export declare const ChangeMessageVisibility: ChangeMessageVisibility; //# sourceMappingURL=ChangeMessageVisibility.d.ts.map