/**
 * Collaborative Canvas - Multi-user real-time collaborative editing component
 * Features: Shared cursors, live editing, conflict resolution, presence awareness
 */
import React from 'react';
import type { CollaborationUser } from '../../hooks/useRealtimeCollaboration';
export interface CanvasElement {
    id: string;
    type: 'text' | 'shape' | 'image' | 'sticky-note' | 'arrow' | 'line';
    position: {
        x: number;
        y: number;
    };
    size: {
        width: number;
        height: number;
    };
    content: string;
    style: {
        color: string;
        backgroundColor: string;
        fontSize: number;
        fontFamily: string;
        borderColor: string;
        borderWidth: number;
        opacity: number;
        rotation: number;
    };
    metadata: {
        createdBy: string;
        createdAt: Date;
        lastModifiedBy: string;
        lastModifiedAt: Date;
        version: number;
        locked: boolean;
        visible: boolean;
    };
    permissions: {
        canEdit: string[];
        canDelete: string[];
        canMove: string[];
    };
}
export interface CanvasState {
    elements: CanvasElement[];
    selectedElements: string[];
    clipboard: CanvasElement[];
    history: {
        past: CanvasElement[][];
        present: CanvasElement[];
        future: CanvasElement[][];
    };
    viewport: {
        x: number;
        y: number;
        zoom: number;
    };
    gridEnabled: boolean;
    snapToGrid: boolean;
    gridSize: number;
}
export interface CollaborativeCanvasProps {
    canvasId: string;
    initialElements?: CanvasElement[];
    width?: number;
    height?: number;
    backgroundColor?: string;
    gridSize?: number;
    enableGrid?: boolean;
    enableSnapping?: boolean;
    enableVoiceChat?: boolean;
    enableVideoChat?: boolean;
    enableScreenShare?: boolean;
    enableFileSharing?: boolean;
    maxUsers?: number;
    onElementsChanged?: (elements: CanvasElement[]) => void;
    onUserJoined?: (user: CollaborationUser) => void;
    onUserLeft?: (userId: string) => void;
    className?: string;
    style?: React.CSSProperties;
}
export declare const CollaborativeCanvas: React.FC<CollaborativeCanvasProps>;
export default CollaborativeCanvas;
//# sourceMappingURL=CollaborativeCanvas.d.ts.map