local ____lualib = require("lualib_bundle")
local __TS__Class = ____lualib.__TS__Class
local __TS__StringStartsWith = ____lualib.__TS__StringStartsWith
local Error = ____lualib.Error
local RangeError = ____lualib.RangeError
local ReferenceError = ____lualib.ReferenceError
local SyntaxError = ____lualib.SyntaxError
local TypeError = ____lualib.TypeError
local URIError = ____lualib.URIError
local __TS__New = ____lualib.__TS__New
local __TS__SourceMapTraceBack = ____lualib.__TS__SourceMapTraceBack
__TS__SourceMapTraceBack(debug.getinfo(1).short_src, {["14"] = 15,["15"] = 15,["16"] = 15,["18"] = 15,["19"] = 18,["20"] = 19,["21"] = 18,["22"] = 22,["23"] = 23,["25"] = 24,["29"] = 28,["30"] = 29,["32"] = 31,["33"] = 22,["34"] = 33,["35"] = 34,["37"] = 35,["41"] = 39,["42"] = 33,["43"] = 41,["44"] = 42,["45"] = 43,["46"] = 44,["47"] = 45,["48"] = 46,["52"] = 50,["53"] = 41});
local ____exports = {}
____exports.SpecificationExtension = __TS__Class()
local SpecificationExtension = ____exports.SpecificationExtension
SpecificationExtension.name = "SpecificationExtension"
function SpecificationExtension.prototype.____constructor(self)
end
function SpecificationExtension.isValidExtension(self, extensionName)
    return __TS__StringStartsWith(extensionName, "x-")
end
function SpecificationExtension.prototype.getExtension(self, extensionName)
    if not ____exports.SpecificationExtension:isValidExtension(extensionName) then
        error(
            __TS__New(Error, ("Invalid specification extension: '" .. extensionName) .. "'. Extensions must start with prefix 'x-"),
            0
        )
    end
    if self[extensionName] then
        return self[extensionName]
    end
    return nil
end
function SpecificationExtension.prototype.addExtension(self, extensionName, payload)
    if not ____exports.SpecificationExtension:isValidExtension(extensionName) then
        error(
            __TS__New(Error, ("Invalid specification extension: '" .. extensionName) .. "'. Extensions must start with prefix 'x-"),
            0
        )
    end
    self[extensionName] = payload
end
function SpecificationExtension.prototype.listExtensions(self)
    local res = {}
    for propName in pairs(self) do
        if Object.prototype.hasOwnProperty(self, propName) then
            if ____exports.SpecificationExtension:isValidExtension(propName) then
                res[#res + 1] = propName
            end
        end
    end
    return res
end
return ____exports
