---@meta
---
--- C_LFGList is a namespace for functions related to the Looking for Group system.
---
--- @class C_LFGList
C_LFGList = {
	--- @param resultID number
	--- @return nil
	--- Accepts an invite to a group.
	AcceptInvite = function(resultID) end,

	--- @param resultID number
	--- @param tankOK boolean
	--- @param healerOK boolean
	--- @param damageOK boolean
	--- @return nil
	--- Applies to a group with specified role preferences.
	ApplyToGroup = function(resultID, tankOK, healerOK, damageOK) end,

	--- @return boolean
	--- Returns if the active entry can use auto-accept.
	CanActiveEntryUseAutoAccept = function() end,

	--- @param resultID number
	--- @return nil
	--- Cancels the application for a group.
	CancelApplication = function(resultID) end,

	--- @param questID number
	--- @return boolean
	--- Returns if a quest group can be created.
	CanCreateQuestGroup = function(questID) end,

	--- @param scenarioID number
	--- @return boolean
	--- Returns if a scenario group can be created.
	CanCreateScenarioGroup = function(scenarioID) end,

	--- @return nil
	--- Clears the application text fields.
	ClearApplicationTextFields = function() end,

	--- @return nil
	--- Clears the creation text fields.
	ClearCreationTextFields = function() end,

	--- @return nil
	--- Clears the search results.
	ClearSearchResults = function() end,

	--- @return nil
	--- Clears the search text fields.
	ClearSearchTextFields = function() end,

	--- @return nil
	--- Copies active entry info to creation fields.
	CopyActiveEntryInfoToCreationFields = function() end,

	--- @param createData table
	--- @return boolean
	--- Creates a group finder listing.
	CreateListing = function(createData) end,

	--- @param activityID number
	--- @param itemLevel number
	--- @param autoAccept boolean
	--- @param privateGroup boolean
	--- @param scenarioID number
	--- @return boolean
	--- Creates a scenario listing.
	CreateScenarioListing = function(activityID, itemLevel, autoAccept, privateGroup, scenarioID) end,

	--- @param applicantID number
	--- @return nil
	--- Declines an applicant for the group.
	DeclineApplicant = function(applicantID) end,

	--- @param searchResultID number
	--- @return nil
	--- Declines an invite to a group.
	DeclineInvite = function(searchResultID) end,

	--- @param activityID number
	--- @param groupID number
	--- @param playstyle string
	--- @return boolean
	--- Checks if the entry title matches a prebuilt title.
	DoesEntryTitleMatchPrebuiltTitle = function(activityID, groupID, playstyle) end,

	--- @return table
	--- Returns information about the currently listed group.
	GetActiveEntryInfo = function() end,

	--- @param activityID number
	--- @param questID number
	--- @param showWarmode boolean
	--- @return string
	--- Returns the full name of the activity.
	GetActivityFullName = function(activityID, questID, showWarmode) end,

	--- @param groupID number
	--- @return table
	--- Returns info for an activity group.
	GetActivityGroupInfo = function(groupID) end,

	--- @param questID number
	--- @return number
	--- Returns the activity ID for a quest ID.
	GetActivityIDForQuestID = function(questID) end,

	--- @param activityID number
	--- @return table
	--- Returns expensive activity info.
	GetActivityInfoExpensive = function(activityID) end,

	--- @param activityID number
	--- @param questID number
	--- @param showWarmode boolean
	--- @return table
	--- Returns the activity info table.
	GetActivityInfoTable = function(activityID, questID, showWarmode) end,

	--- @return table
	--- Returns advanced filter options.
	GetAdvancedFilter = function() end,

	--- @param localID number
	--- @param applicantIndex number
	--- @return number
	--- Returns the best dungeon score for an applicant.
	GetApplicantBestDungeonScore = function(localID, applicantIndex) end,

	--- @param localID number
	--- @param applicantIndex number
	--- @param activityID number
	--- @return number
	--- Returns the dungeon score for an applicant.
	GetApplicantDungeonScoreForListing = function(localID, applicantIndex, activityID) end,

	--- @param applicantID number
	--- @return table
	--- Returns applicant info.
	GetApplicantInfo = function(applicantID) end,

	--- @param applicantID number
	--- @param memberIndex number
	--- @return table
	--- Returns member info for an applicant.
	GetApplicantMemberInfo = function(applicantID, memberIndex) end,

	--- @param applicantID number
	--- @param memberIndex number
	--- @return table
	--- Returns stats for an applicant.
	GetApplicantMemberStats = function(applicantID, memberIndex) end,

	--- @param localID number
	--- @param applicantIndex number
	--- @param activityID number
	--- @return table
	--- Returns PvP rating info for an applicant.
	GetApplicantPvpRatingInfoForListing = function(localID, applicantIndex, activityID) end,

	--- @return table
	--- Returns the list of applicants to your group.
	GetApplicants = function() end,

	--- @param searchResultID number
	--- @return table
	--- Returns application info for a search result.
	GetApplicationInfo = function(searchResultID) end,

	--- @return table
	--- Returns the list of applications.
	GetApplications = function() end,

	--- @param categoryID number
	--- @param groupID number
	--- @param filter string
	--- @return table
	--- Returns available activities.
	GetAvailableActivities = function(categoryID, groupID, filter) end,

	--- @param categoryID number
	--- @param filter string
	--- @return table
	--- Returns available activity groups.
	GetAvailableActivityGroups = function(categoryID, filter) end,

	--- @param filter string
	--- @return table
	--- Returns available categories.
	GetAvailableCategories = function(filter) end,

	--- @return table
	--- Returns available language search filter.
	GetAvailableLanguageSearchFilter = function() end,

	--- @return table
	--- Returns available roles.
	GetAvailableRoles = function() end,

	--- @return table
	--- Returns default language search filter.
	GetDefaultLanguageSearchFilter = function() end,

	--- @return table
	--- Returns filtered search results.
	GetFilteredSearchResults = function() end,

	--- @param activityID number
	--- @return number
	--- Returns the keystone for an activity.
	GetKeystoneForActivity = function(activityID) end,

	--- @return table
	--- Returns the language search filter.
	GetLanguageSearchFilter = function() end,

	--- @param categoryID number
	--- @return table
	--- Returns category info.
	GetLfgCategoryInfo = function(categoryID) end,

	--- @return number
	--- Returns the number of applicants.
	GetNumApplicants = function() end,

	--- @return number
	--- Returns the number of applications.
	GetNumApplications = function() end,

	--- @return number
	--- Returns the number of invited applicant members.
	GetNumInvitedApplicantMembers = function() end,

	--- @return number
	--- Returns the number of pending applicant members.
	GetNumPendingApplicantMembers = function() end,

	--- @return table
	--- Returns owned keystone activity and group and level.
	GetOwnedKeystoneActivityAndGroupAndLevel = function() end,

	--- @param playstyle string
	--- @param activityInfo table
	--- @return string
	--- Returns playstyle string.
	GetPlaystyleString = function(playstyle, activityInfo) end,

	--- @return string
	--- Returns the premade group finder style.
	GetPremadeGroupFinderStyle = function() end,

	--- @return table
	--- Returns role check info.
	GetRoleCheckInfo = function() end,

	--- @param searchResultID number
	--- @return table
	--- Returns encounter info for a search result.
	GetSearchResultEncounterInfo = function(searchResultID) end,

	--- @param searchResultID number
	--- @return table
	--- Returns friends info for a search result.
	GetSearchResultFriends = function(searchResultID) end,

	--- @param searchResultID number
	--- @return table
	--- Returns info for a search result.
	GetSearchResultInfo = function(searchResultID) end,

	--- @param searchResultID number
	--- @return table
	--- Returns leader info for a search result.
	GetSearchResultLeaderInfo = function(searchResultID) end,

	--- @param searchResultID number
	--- @return table
	--- Returns member counts for a search result.
	GetSearchResultMemberCounts = function(searchResultID) end,

	--- @param searchResultID number
	--- @param memberIndex number
	--- @return table
	--- Returns player info for a search result.
	GetSearchResultPlayerInfo = function(searchResultID, memberIndex) end,

	--- @return table
	--- Returns search results.
	GetSearchResults = function() end,

	--- @return boolean
	--- Returns if there is active entry info.
	HasActiveEntryInfo = function() end,

	--- @return boolean
	--- Returns if there is an activity list.
	HasActivityList = function() end,

	--- @param searchResultID number
	--- @return boolean
	--- Returns if there is search result info.
	HasSearchResultInfo = function(searchResultID) end,

	--- @param applicantID number
	--- @return nil
	--- Invites an applicant to the group.
	InviteApplicant = function(applicantID) end,

	--- @return boolean
	--- Returns if currently applying.
	IsCurrentlyApplying = function() end,

	--- @param activityCategoryID number
	--- @return boolean
	--- Returns if the player is authenticated for LFG.
	IsPlayerAuthenticatedForLFG = function(activityCategoryID) end,

	--- @return nil
	--- Refreshes the list of applicants.
	RefreshApplicants = function() end,

	--- @param applicantID number
	--- @return nil
	--- Removes an applicant from the group.
	RemoveApplicant = function(applicantID) end,

	--- @return nil
	--- Removes the listing for the group.
	RemoveListing = function() end,

	--- @return nil
	--- Requests available activities.
	RequestAvailableActivities = function() end,

	--- @param options table
	--- @return nil
	--- Saves the advanced filter options.
	SaveAdvancedFilter = function(options) end,

	--- @param enabled boolean
	--- @return nil
	--- Saves the language search filter.
	SaveLanguageSearchFilter = function(enabled) end,

	--- @param categoryID number
	--- @param filter string
	--- @param preferredFilters table
	--- @param languageFilter string
	--- @param searchCrossFactionListings boolean
	--- @param advancedFilter table
	--- @param activityIDsFilter table
	--- @return nil
	--- Searches for groups.
	Search = function(
		categoryID,
		filter,
		preferredFilters,
		languageFilter,
		searchCrossFactionListings,
		advancedFilter,
		activityIDsFilter
	)
	end,

	--- @param applicantID number
	--- @param memberIndex number
	--- @param role string
	--- @return nil
	--- Sets the role for an applicant member.
	SetApplicantMemberRole = function(applicantID, memberIndex, role) end,

	--- @param activityID number
	--- @param groupID number
	--- @param playstyle string
	--- @return nil
	--- Sets the entry title for the group.
	SetEntryTitle = function(activityID, groupID, playstyle) end,

	--- @param activityID number
	--- @return nil
	--- Sets the search to an activity.
	SetSearchToActivity = function(activityID) end,

	--- @param questID number
	--- @return nil
	--- Sets the search to a quest ID.
	SetSearchToQuestID = function(questID) end,

	--- @param scenarioID number
	--- @return nil
	--- Sets the search to a scenario ID.
	SetSearchToScenarioID = function(scenarioID) end,

	--- @param createData table
	--- @return boolean
	--- Updates the group listing.
	UpdateListing = function(createData) end,

	--- @param dungeonScore number
	--- @return boolean
	--- Validates the required dungeon score.
	ValidateRequiredDungeonScore = function(dungeonScore) end,

	--- @param activityID number
	--- @param rating number
	--- @return boolean
	--- Validates the required PvP rating for an activity.
	ValidateRequiredPvpRatingForActivity = function(activityID, rating) end,

	--- @return boolean
	--- Returns if the premade group finder is enabled.
	IsPremadeGroupFinderEnabled = function() end,
}
