import { EvtDocEphemeral, EvtRequestGrant, EvtSocialEdge, EvtUserNotification, EvtViewerGrantsChanged } from "@vibes.diy/api-types"; import { VibeDiyApiConnection } from "./api-connection.js"; type ListenerDetacher = () => void; export declare function attachDocChangedToConnection(conn: VibeDiyApiConnection, fn: (ownerHandle: string, appSlug: string, dbName: string, docId: string) => void): ListenerDetacher; export declare function attachDocEphemeralToConnection(conn: VibeDiyApiConnection, fn: (evt: EvtDocEphemeral) => void): ListenerDetacher; export declare function attachDocEphemeralDropToConnection(conn: VibeDiyApiConnection, fn: (originPeer: string) => void): ListenerDetacher; export declare function attachRequestGrantToConnection(conn: VibeDiyApiConnection, fn: (evt: EvtRequestGrant) => void): ListenerDetacher; export declare function attachViewerGrantsChangedToConnection(conn: VibeDiyApiConnection, fn: (evt: EvtViewerGrantsChanged) => void): ListenerDetacher; export declare function attachSocialEdgeToConnection(conn: VibeDiyApiConnection, fn: (evt: EvtSocialEdge) => void): ListenerDetacher; export declare function attachUserNotificationToConnection(conn: VibeDiyApiConnection, fn: (evt: EvtUserNotification) => void): ListenerDetacher; export interface ReplayConnectionStateParams { conn: VibeDiyApiConnection; docChangedListeners: ((ownerHandle: string, appSlug: string, dbName: string, docId: string) => void)[]; docChangedDetachers: Map<(ownerHandle: string, appSlug: string, dbName: string, docId: string) => void, ListenerDetacher>; docEphemeralListeners: ((evt: EvtDocEphemeral) => void)[]; docEphemeralDetachers: Map<(evt: EvtDocEphemeral) => void, ListenerDetacher>; docEphemeralDropListeners: ((originPeer: string) => void)[]; docEphemeralDropDetachers: Map<(originPeer: string) => void, ListenerDetacher>; requestGrantListeners: ((evt: EvtRequestGrant) => void)[]; requestGrantDetachers: Map<(evt: EvtRequestGrant) => void, ListenerDetacher>; socialEdgeListeners: ((evt: EvtSocialEdge) => void)[]; socialEdgeDetachers: Map<(evt: EvtSocialEdge) => void, ListenerDetacher>; viewerGrantsListeners: ((evt: EvtViewerGrantsChanged) => void)[]; viewerGrantsDetachers: Map<(evt: EvtViewerGrantsChanged) => void, ListenerDetacher>; userNotificationListeners: ((evt: EvtUserNotification) => void)[]; userNotificationDetachers: Map<(evt: EvtUserNotification) => void, ListenerDetacher>; docSubscriptions: { ownerHandle: string; appSlug: string; dbName: string; }[]; requestGrantSubscriptions: { ownerHandle: string; appSlug: string; }[]; viewerGrantsSubscriptions: { ownerHandle: string; appSlug: string; }[]; userNotificationSubscribed: boolean; socialSubscribed: boolean; subscribeDocs: (sub: { ownerHandle: string; appSlug: string; dbName: string; }) => Promise; subscribeRequestGrants: (sub: { ownerHandle: string; appSlug: string; }) => Promise; subscribeViewerGrants: (sub: { ownerHandle: string; appSlug: string; }) => Promise; subscribeUserNotifications: (req: object) => Promise; subscribeSocial: (req: object) => Promise; } export declare function replayConnectionState(params: ReplayConnectionStateParams): void; export {};