export interface PresenceUser {
    userId: string;
    name: string;
    avatarUrl?: string;
    documentId: string;
    fieldName?: string;
    connectedAt: Date;
    lastSeen: Date;
}
export interface PresenceProvider {
    join(documentId: string, user: Omit<PresenceUser, 'connectedAt' | 'lastSeen'>): Promise<void>;
    leave(documentId: string, userId: string): Promise<void>;
    getPresent(documentId: string): Promise<PresenceUser[]>;
    heartbeat(documentId: string, userId: string): Promise<void>;
    onUpdate(documentId: string, callback: (users: PresenceUser[]) => void): () => void;
}
export declare function createSSEPresenceAdapter(): {
    provider: PresenceProvider;
    handleSSE: (request: Request, documentId: string, user: {
        userId: string;
        name: string;
    }) => Response;
};
//# sourceMappingURL=index.d.ts.map