import { type ComponentMetadata } from "../utils/loader";
import BaseComponent from "../Counter/BaseComponent";
interface OrgNodeData {
    node: DocumentFragment;
    userData: any;
    children: OrgNodeData[];
    level: number;
    parent?: OrgNodeData;
    width?: number;
    x?: number;
}
export default class OrgChart extends BaseComponent {
    props: Record<string, any>;
    data: any[];
    chartContainer: HTMLDivElement | null;
    nodesMap: Map<string, OrgNodeData>;
    rootNodes: OrgNodeData[];
    levels: OrgNodeData[][];
    nodeWidth: number;
    nodeHeight: number;
    horizontalSpacing: number;
    verticalSpacing: number;
    component: ComponentMetadata | null;
    chartArea: HTMLDivElement | null;
    scale: number;
    minScale: number;
    maxScale: number;
    zoomStep: number;
    isDragging: boolean;
    lastMouseX: number;
    lastMouseY: number;
    translateX: number;
    translateY: number;
    connectedCallback(): Promise<void>;
    initializeChart(): void;
    buildHierarchy(data: any[]): void;
    calculateLevels(nodes: OrgNodeData[], level: number): void;
    organizeLevels(): void;
    calculateNodePositions(): void;
    calculateSubtreeWidths(nodes: OrgNodeData[]): number;
    assignNodePositions(node: OrgNodeData, startX: number): void;
    renderChart(): void;
    drawConnectorLines(container: HTMLElement): void;
    createConnector(container: HTMLElement, startX: number, startY: number, endX: number, endY: number): void;
    setupZoomAndDrag(): void;
    handleZoom(e: WheelEvent): void;
    handleDragStart(e: MouseEvent): void;
    handleDragMove(e: MouseEvent): void;
    handleDragEnd(): void;
    updateTransform(): void;
    disconnectedCallback(): void;
}
export {};
