/** * Base action interface for all game/domain actions */ import { Identifiable, Serializable, Comparable, Hashable } from '../../types/common'; /** * Base interface that all actions must implement */ export interface Action extends Identifiable, Serializable, Comparable, Hashable { /** Type identifier for this action */ readonly type: string; /** Human-readable description of the action */ readonly description: string; /** Whether this action is valid in the current context */ isValid(): boolean; /** Get the cost or complexity of this action */ getCost(): number; /** Additional metadata about the action */ getMetadata(): Record; } /** * Base abstract implementation of Action */ export declare abstract class BaseAction implements Action { readonly id: string; readonly type: string; readonly description: string; protected constructor(id: string, type: string, description: string); abstract isValid(): boolean; abstract getCost(): number; abstract getMetadata(): Record; abstract serialize(): string; abstract getHashKey(): string; abstract equals(other: Action): boolean; toString(): string; } //# sourceMappingURL=action.d.ts.map