
import React from 'react';

// ============== Types ==============

export type DataType = 'string' | 'number' | 'boolean' | 'date';

export type ColumnType = 'input' | 'output' | 'annotation';

export type HitPolicy = 'UNIQUE' | 'FIRST' | 'PRIORITY' | 'ANY' | 'COLLECT' | 'RULE ORDER' | 'OUTPUT ORDER';

export interface ColumnDefinition {
  id: string;
  label: string;
  variableName?: string;
  type: ColumnType;
  dataType: DataType;
  width?: number;
}

export interface Rule {
  id: string;
  cells: Record<string, string>;
}

export interface DmnModel {
  id: string;
  name: string;
  hitPolicy: HitPolicy;
  columns: ColumnDefinition[];
  rules: Rule[];
}

// ============== Component Props ==============

export interface DmnEditorProps {
  initialModel?: DmnModel;
  onSave?: (model: DmnModel) => void;
  onBack?: () => void;
  readOnly?: boolean;
}

// ============== Components ==============

export declare const DmnEditorWrapper: React.FC<DmnEditorProps>;
export default DmnEditorWrapper;
