using System;

namespace ClosedXML.Excel
{
    public enum XLBorderStyleValues
    {
        DashDot,
        DashDotDot,
        Dashed,
        Dotted,
        Double,
        Hair,
        Medium,
        MediumDashDot,
        MediumDashDotDot,
        MediumDashed,
        None,
        SlantDashDot,
        Thick,
        Thin
    }
    public interface IXLBorder: IEquatable<IXLBorder>
    {
        XLBorderStyleValues OutsideBorder { set; }
        XLColor OutsideBorderColor { set; }
        XLBorderStyleValues InsideBorder { set; }
        XLColor InsideBorderColor { set; }

        XLBorderStyleValues LeftBorder { get; set; }
        XLColor LeftBorderColor { get; set; }
        XLBorderStyleValues RightBorder { get; set; }
        XLColor RightBorderColor { get; set; }
        XLBorderStyleValues TopBorder { get; set; }
        XLColor TopBorderColor { get; set; }
        XLBorderStyleValues BottomBorder { get; set; }
        XLColor BottomBorderColor { get; set; }
        Boolean DiagonalUp { get; set; }
        Boolean DiagonalDown { get; set; }
        XLBorderStyleValues DiagonalBorder { get; set; }
        XLColor DiagonalBorderColor { get; set; }

        IXLStyle SetOutsideBorder(XLBorderStyleValues value);
        IXLStyle SetOutsideBorderColor(XLColor value);
        IXLStyle SetInsideBorder(XLBorderStyleValues value);
        IXLStyle SetInsideBorderColor(XLColor value);

        IXLStyle SetLeftBorder(XLBorderStyleValues value);
        IXLStyle SetLeftBorderColor(XLColor value);
        IXLStyle SetRightBorder(XLBorderStyleValues value);
        IXLStyle SetRightBorderColor(XLColor value);
        IXLStyle SetTopBorder(XLBorderStyleValues value);
        IXLStyle SetTopBorderColor(XLColor value);
        IXLStyle SetBottomBorder(XLBorderStyleValues value);
        IXLStyle SetBottomBorderColor(XLColor value);
        IXLStyle SetDiagonalUp(); IXLStyle SetDiagonalUp(Boolean value);
        IXLStyle SetDiagonalDown(); IXLStyle SetDiagonalDown(Boolean value);
        IXLStyle SetDiagonalBorder(XLBorderStyleValues value);
        IXLStyle SetDiagonalBorderColor(XLColor value);

    }
}
