/**
 * Base class for all Zapier SDK signals.
 *
 * Signals are intentional control-flow throws — the user is signaling
 * intent to the SDK runtime, not reporting a failure. For example, a
 * callback throwing `ZapierReleaseTriggerMessageSignal` tells
 * `drainTriggerInbox` to release the message immediately rather than
 * leave it leased.
 *
 * Distinct from `ZapierError` (failures): signals are not errors and
 * shouldn't be caught by error-handling code via `instanceof
 * ZapierError`. Use `instanceof ZapierSignal` to discriminate intent
 * throws from real failures.
 */
export class ZapierSignal extends Error {
    constructor(message) {
        super(message);
        // Maintain proper prototype chain for instanceof checks
        Object.setPrototypeOf(this, new.target.prototype);
    }
}
