import { SupabaseClient } from '@supabase/supabase-js'; import { B as ByollmStore } from '../store-BkDHRir0.js'; import { P as PollingDeliveryDeps, R as ResultDelivery } from '../delivery-C5mz_Ykm.js'; import '@byollm/protocol'; /** * Realtime delivery: the app learns a job finished when Postgres says so. * * byollm_003 Rev 1 requires the server→app path be an explicit channel rather * than an implied in-request `await`. Polling is the portable default; * this is the one worth having when the app is already on Supabase, because * a result arrives in milliseconds instead of on the next poll tick. * * The no-runner watch still polls, deliberately: runner liveness is a * *derived* signal (nobody with matching capability has heartbeated lately), * and there is no row change to subscribe to for "something stopped * happening". */ declare function supabaseRealtimeDelivery(client: SupabaseClient): (deps: PollingDeliveryDeps) => ResultDelivery; interface SupabaseStoreOptions { /** A client built with the **service role** key. */ readonly client: SupabaseClient; /** Default TTL for a job once claimable. */ readonly defaultTtlMs?: number; } /** Build the Supabase-backed store. */ declare function supabaseStore(options: SupabaseStoreOptions): ByollmStore; export { type SupabaseStoreOptions, supabaseRealtimeDelivery, supabaseStore };