-- Compiled with roblox-ts v1.3.3
local TS = _G[script]
local DoublyLinkedList = TS.import(script, script.Parent, "DoublyLinkedList").DoublyLinkedList
warn("This Queue class should not be used anymore! Switch to @rbxts/stacks-and-queues")
local Queue
do
	Queue = setmetatable({}, {
		__tostring = function()
			return "Queue"
		end,
	})
	Queue.__index = Queue
	function Queue.new(...)
		local self = setmetatable({}, Queue)
		return self:constructor(...) or self
	end
	function Queue:constructor(values)
		self.linkedList = DoublyLinkedList.new(values)
	end
	function Queue:getNextValue()
		return self.linkedList:getHeadValue()
	end
	function Queue:isEmpty()
		return self.linkedList:isEmpty()
	end
	function Queue:popNextValue()
		return self.linkedList:popHeadValue()
	end
	function Queue:push(value)
		self.linkedList:pushToTail(value)
	end
	function Queue:pushArray(values)
		local tempLinkedList = DoublyLinkedList.new(values)
		self.linkedList:pushListToTail(tempLinkedList)
	end
	function Queue:size()
		return self.linkedList:size()
	end
end
return {
	Queue = Queue,
}
