using System;
using System.Collections.Generic;
using InABox.Core;
using Syncfusion.UI.Xaml.Grid;
using Syncfusion.UI.Xaml.TreeGrid;

namespace InABox.DynamicGrid;

public interface IDynamicGridEditorColumn : IDynamicColumnBase
{
    DynamicGridColumn? Definition { get; set; }
    string? MappingName { get; }
    string? TreeMappingName { get; }
    List<string> ExtraColumns { get; }

    bool VariableWidth { get; }
    bool VariableHeight { get; }
    bool Filtered { get; }
    bool Editable { get; }

    GridSummaryColumn? Summary();

    Func<BaseObject>? GetEntity { get; set; }

    GridColumn CreateGridColumn();
    TreeGridColumn CreateTreeGridColumn();
}
