/**
 * Collaboration User
 */
export interface CollaborationUser {
    id: string;
    name: string;
    email?: string;
    avatar?: string;
    color: string;
    cursor?: {
        field: string;
        position: number;
        selection?: {
            start: number;
            end: number;
        };
    };
}
/**
 * Collaboration Options
 */
export interface CollaborationOptions {
    documentId: string;
    documentType: 'task' | 'project';
    userId: string;
    userInfo: Omit<CollaborationUser, 'cursor'>;
    serverUrl?: string;
    token?: string;
    onUserJoined?: (user: CollaborationUser) => void;
    onUserLeft?: (userId: string) => void;
    onCursorUpdate?: (userId: string, cursor: any) => void;
    onAwarenessUpdate?: (userId: string, awareness: any) => void;
    onDocumentChange?: (event: any) => void;
    autoConnect?: boolean;
}
/**
 * Collaboration State
 */
export interface CollaborationState {
    connected: boolean;
    activeUsers: CollaborationUser[];
    localUser: CollaborationUser;
    isSyncing: boolean;
    hasUnsavedChanges: boolean;
    lastSyncTime?: Date;
}
/**
 * React Hook for Y.js Collaboration
 */
export declare function useCollaboration(options: CollaborationOptions): {
    state: any;
    connect: any;
    disconnect: any;
    getDocument: any;
    getYType: any;
    getValue: any;
    updateField: any;
    updateCursor: any;
    updateAwareness: any;
    isConnected: any;
    activeUsers: any;
    hasUnsavedChanges: any;
};
//# sourceMappingURL=useCollaboration.d.ts.map