import type { SessionOutboundMessage } from "@getpaseo/protocol/messages"; export type SubscriptionSnapshot = T & { subscriptionId: string; }; export interface SubscriptionObserver { snapshot(snapshot: T): void; update(message: SessionOutboundMessage): void; error?(error: unknown): void; } /** A stable local lifetime. IDs change on reconnect; legacy IDs identify local listeners only. */ export interface OwnedSubscription { readonly subscriptionId: string | null; readonly ready: Promise>; subscribe(observer: SubscriptionObserver>): () => void; release(): Promise; } export interface OwnedSubscriptionsHost { release(subscriptionId: string): Promise; failed(error: unknown): void; } /** Transport routing and lifetime only; query semantics remain with each domain. */ export declare class OwnedSubscriptions { private readonly host; private readonly registrations; private readonly routes; private generation; private connected; constructor(host: OwnedSubscriptionsHost); observe(request: (accept: (snapshot: T) => void) => Promise, signal?: AbortSignal, requestFailed?: () => void): OwnedSubscription; owns(message: SessionOutboundMessage): boolean; receive(message: SessionOutboundMessage): void; restore(): void; disconnected(): void; close(): Promise; } //# sourceMappingURL=owned.d.ts.map