--[[
	Type definitions for data passed into CallToAction class
--]]


local ReplicatedStorage = game:GetService("ReplicatedStorage")

local TagEnumType = require(ReplicatedStorage.Source.SharedConstants.CollectionServiceTag.TagEnumType)
local PlayerDataKey = require(ReplicatedStorage.Source.SharedConstants.PlayerDataKey)

export type PromptTriggeredCallback = (promptParent: Instance) -> nil

export type PromptData = {
	getActionText: (promptParent: Instance) -> string,
	getObjectText: (promptParent: Instance) -> string,
	onTriggered: PromptTriggeredCallback,
}

export type CtaData = {
	tag: TagEnumType.EnumType,
	imageColor3: Color3,
	backgroundColor3: Color3,
	imageId: number,
	listenToPlayerDataValues: { PlayerDataKey.EnumType }?,
	listenToTags: { TagEnumType.EnumType }?,
	promptData: PromptData?,
	shouldEnable: ((promptParent: Instance) -> boolean)?,
}

return nil
