---@meta
---
--- C_Calendar is a namespace for functions related to the in-game calendar system.
---
--- @class C_Calendar
C_Calendar = {
	--- @return boolean
	--- Returns whether the calendar is open.
	IsOpen = function() end,

	--- @param year number
	--- @param month number
	--- @param day number
	--- @return table
	--- Returns the events for a specific day.
	GetDayEvent = function(year, month, day) end,

	--- @param year number
	--- @param month number
	--- @return table
	--- Returns the number of events in a month.
	GetNumDayEvents = function(year, month) end,

	--- @param eventIndex number
	--- @return table
	--- Returns information about a specific event.
	GetEventInfo = function(eventIndex) end,

	--- @param eventID number
	--- @return table
	--- Returns the invite status for an event.
	GetEventInviteStatus = function(eventID) end,

	--- @param eventID number
	--- @return table
	--- Returns the invite list for an event.
	GetEventInvites = function(eventID) end,

	--- @param eventID number
	--- @param inviteIndex number
	--- @return table
	--- Returns information about a specific invite.
	GetInviteInfo = function(eventID, inviteIndex) end,

	--- @param year number
	--- @param month number
	--- @param day number
	--- @param title string
	--- @param description string
	--- @param eventType string
	--- @param repeating boolean
	--- @param maxSize number
	--- @param textureIndex number
	--- @return boolean
	--- Creates a new event.
	CreateEvent = function(year, month, day, title, description, eventType, repeating, maxSize, textureIndex) end,

	--- @param eventID number
	--- @return boolean
	--- Removes an event.
	RemoveEvent = function(eventID) end,

	--- @param eventID number
	--- @param status string
	--- @return boolean
	--- Updates the status of an event invite.
	UpdateEventInviteStatus = function(eventID, status) end,

	--- @param eventID number
	--- @param inviteIndex number
	--- @param name string
	--- @return boolean
	--- Invites a player to an event.
	InviteToEvent = function(eventID, inviteIndex, name) end,

	--- @param eventID number
	--- @param inviteIndex number
	--- @return boolean
	--- Removes an invite from an event.
	RemoveInvite = function(eventID, inviteIndex) end,

	--- @return table
	--- Returns the current calendar time.
	GetCalendarTime = function() end,

	--- @param year number
	--- @param month number
	--- @param day number
	--- @return boolean
	--- Sets the selected date.
	SetSelectedDate = function(year, month, day) end,

	--- @return table
	--- Returns the selected date.
	GetSelectedDate = function() end,

	--- @param eventID number
	--- @return boolean
	--- Opens the event in the calendar UI.
	OpenEvent = function(eventID) end,

	--- @param eventID number
	--- @return boolean
	--- Closes the event in the calendar UI.
	CloseEvent = function(eventID) end,

	--- @return table
	--- Returns the guild event types available.
	GetGuildEventTypes = function() end,

	--- @return table
	--- Returns the available event textures.
	GetEventTextures = function() end,
}
