export const RESTFieldType: {
    readonly Blob: "esriFieldTypeBlob";
    readonly Date: "esriFieldTypeDate";
    readonly DateOnly: "esriFieldTypeDateOnly";
    readonly TimestampOffset: "esriFieldTypeTimestampOffset";
    readonly Double: "esriFieldTypeDouble";
    readonly Geometry: "esriFieldTypeGeometry";
    readonly GlobalID: "esriFieldTypeGlobalID";
    readonly GUID: "esriFieldTypeGUID";
    readonly Integer: "esriFieldTypeInteger";
    readonly SmallInteger: "esriFieldTypeSmallInteger";
    readonly BigInteger: "esriFieldTypeBigInteger";
    readonly OID: "esriFieldTypeOID";
    readonly Raster: "esriFieldTypeRaster";
    readonly Single: "esriFieldTypeSingle";
    readonly String: "esriFieldTypeString";
    readonly XML: "esriFieldTypeXML";
};

export type RESTFieldType = (typeof RESTFieldType)[keyof typeof RESTFieldType];

export const RESTSimpleLineSymbolStyle: {
    readonly Dash: "esriSLSDash";
    readonly DashDot: "esriSLSDashDot";
    readonly DashDotDot: "esriSLSDashDotDot";
    readonly Dot: "esriSLSDot";
    readonly Null: "esriSLSNull";
    readonly Solid: "esriSLSSolid";
};

export type RESTSimpleLineSymbolStyle = (typeof RESTSimpleLineSymbolStyle)[keyof typeof RESTSimpleLineSymbolStyle];

export const RESTSimpleMarkerSymbolStyle: {
    readonly Circle: "esriSMSCircle";
    readonly Cross: "esriSMSCross";
    readonly Diamond: "esriSMSDiamond";
    readonly Square: "esriSMSSquare";
    readonly X: "esriSMSX";
    readonly Triangle: "esriSMSTriangle";
};

export type RESTSimpleMarkerSymbolStyle = (typeof RESTSimpleMarkerSymbolStyle)[keyof typeof RESTSimpleMarkerSymbolStyle];

export const RESTSimpleFillSymbolStyle: {
    readonly BackwardDiagonal: "esriSFSBackwardDiagonal";
    readonly Cross: "esriSFSCross";
    readonly DiagonalCross: "esriSFSDiagonalCross";
    readonly ForwardDiagonal: "esriSFSForwardDiagonal";
    readonly Horizontal: "esriSFSHorizontal";
    readonly Null: "esriSFSNull";
    readonly Solid: "esriSFSSolid";
    readonly Vertical: "esriSFSVertical";
};

export type RESTSimpleFillSymbolStyle = (typeof RESTSimpleFillSymbolStyle)[keyof typeof RESTSimpleFillSymbolStyle];

export const RESTHorizontalAlignment: {
    readonly Left: "left";
    readonly Right: "right";
    readonly Center: "center";
    readonly Justify: "justify";
};

export type RESTHorizontalAlignment = (typeof RESTHorizontalAlignment)[keyof typeof RESTHorizontalAlignment];

export const RESTVerticalAlignment: {
    readonly Baseline: "baseline";
    readonly Top: "top";
    readonly Middle: "middle";
    readonly Bottom: "bottom";
};

export type RESTVerticalAlignment = (typeof RESTVerticalAlignment)[keyof typeof RESTVerticalAlignment];

export const RESTSymbolType: {
    readonly SLS: "esriSLS";
    readonly SMS: "esriSMS";
    readonly SFS: "esriSFS";
    readonly PMS: "esriPMS";
    readonly PFS: "esriPFS";
    readonly TS: "esriTS";
};

export type RESTSymbolType = (typeof RESTSymbolType)[keyof typeof RESTSymbolType];

export const RESTFontStyle: {
    readonly Italic: "italic";
    readonly Normal: "normal";
    readonly Oblique: "oblique";
};

export type RESTFontStyle = (typeof RESTFontStyle)[keyof typeof RESTFontStyle];

export const RESTFontWeight: {
    readonly Bold: "bold";
    readonly Bolder: "bolder";
    readonly Lighter: "lighter";
    readonly Normal: "normal";
};

export type RESTFontWeight = (typeof RESTFontWeight)[keyof typeof RESTFontWeight];

export const RESTFontDecoration: {
    readonly LineThrough: "line-through";
    readonly Underline: "underline";
    readonly None: "none";
};

export type RESTFontDecoration = (typeof RESTFontDecoration)[keyof typeof RESTFontDecoration];

export const RESTRendererType: {
    readonly UniqueValue: "unique-value";
    readonly Simple: "simple";
    readonly ClassBreaks: "class-breaks";
    readonly Heatmap: "heatmap";
    readonly DotDensity: "dot-density";
    readonly Dictionary: "dictionary";
    readonly PieChart: "pie-chart";
};

export type RESTRendererType = (typeof RESTRendererType)[keyof typeof RESTRendererType];

export const RESTUnits: {
    readonly Feet: "feet";
    readonly Miles: "miles";
    readonly NauticalMiles: "nautical-miles";
    readonly USNauticalMiles: "us-nautical-miles";
    readonly Meters: "meters";
    readonly Kilometers: "kilometers";
};

export type RESTUnits = (typeof RESTUnits)[keyof typeof RESTUnits];