import type { ClientMessageConditions, ClientMessageContext } from "../../conditions/context/clientMessage.js"; import type { State } from "../../state/state.js"; import type { Command } from "../../command.js"; import type { BaseActionDefinition, BaseActionTemplate } from "../base.js"; import type { InteractionQueries } from "../shared/types.js"; /** * @category Action definitions */ export interface EntityActionTemplate extends BaseActionTemplate { /** * Function returning queries for interacted entities. * * Return "*" to indicate interest in any entity interactions * * Return empty array to indicate interest in interaction events without * a reference to entities. */ interaction: InteractionQueries; } /** * @ignore */ export declare class EntityActionDefinition implements BaseActionDefinition { private template; name: string; /** * Only for use in bots internals * @ignore */ get templateInteraction(): EntityActionTemplate["interaction"]; constructor(template: EntityActionTemplate); /** * @deprecated is this used? */ abort: () => boolean; checkPrerequisites(messageContext: ClientMessageContext): boolean; checkConditions(test: ClientMessageConditions, messageContext: ClientMessageContext): void; getCommand(messageContext: ClientMessageContext): Command; } /** * @category Action definitions */ export declare function defineEntityAction(template: EntityActionTemplate): EntityActionDefinition; /** * @category Action definitions */ export type EntityActionTemplateInteraction = EntityActionTemplate["interaction"];