local d={"\078\097\109\101","\076\097\121\111\117\116\079\114\100\101\114","\073\099\111\110"}local t={"\087\105\110\100\111\119\115","\077\097\099"}local l={Font=Enum.Font.Highway,UIScale=1;OpenFieldsByDefault=true,SortType="\078\097\109\101";IgnoreGameProcessedKeybinds=false;EnableSocketMacros=true,EnableSocketMacrosOverwrite=true;EnableAutoRun=true,UseDefaultSettings=false;ClearFieldTextBoxOnFocus=true;HideUnusedFieldsAndKeybind=false,OSType="\087\105\110\100\111\119\115",LocalMacroColor=Color3.fromRGB(0,123,180)}local m={Font=function(d)if not d.EnumType==Enum.Font then return"\078\111\116 \112\097\115\115\101\100 \097\110 \069\110\117\109\046\070\111\110\116 \118\097\108\117\101"end end,SortType=function(t)if not table.find(d,t)then return("\066\097\100 \083\111\114\116\084\121\112\101\046 \071\111\111\100 \083\111\114\116\084\121\112\101\115\058 \037\115"):format(table.concat(d,"\044 "))end end;OSType=function(l)if not table.find(t,l)then return("\066\097\100 \079\083\084\121\112\101\046 \071\111\111\100 \079\083\116\121\112\101\058 \037\115"):format(table.concat(d,"\044 "))end end}return{defaultSettings=l,validationFunctions=m}
---
---Default Socket Settings
---

-- Constants
local SORT_TYPES = { "Name", "LayoutOrder", "Icon" }
local OS_TYPES = { "Windows", "Mac" }

--------------------------------------------------
-- Members

---@type SocketSettings
local settings = {
    Font = Enum.Font.Highway,
    UIScale = 1,
    OpenFieldsByDefault = true,
    SortType = "Name",
    IgnoreGameProcessedKeybinds = false,
    EnableSocketMacros = true,
    EnableSocketMacrosOverwrite = true,
    EnableAutoRun = true,
    UseDefaultSettings = false,
    ClearFieldTextBoxOnFocus = true,
    HideUnusedFieldsAndKeybind = false,
    OSType = "Windows",
    LocalMacroColor = Color3.fromRGB(0, 123, 180),
}

---@type table<string, fun(value:any):string|nil>
local validationFunctions = {
    Font = function(value)
        if not value.EnumType == Enum.Font then
            return "Not passed an Enum.Font value"
        end
    end,
    SortType = function(value)
        if not table.find(SORT_TYPES, value) then
            return ("Bad SortType. Good SortTypes: %s"):format(table.concat(SORT_TYPES, ", "))
        end
    end,
    OSType = function(value)
        if not table.find(OS_TYPES, value) then
            return ("Bad OSType. Good OStype: %s"):format(table.concat(SORT_TYPES, ", "))
        end
    end,
}

return {
    defaultSettings = settings,
    validationFunctions = validationFunctions,
}
