import { type CardEffect, type EffectManagerInterface, type GameEventData, type GameState, type TCard } from '../types/index.js'; export declare class ConditionalEffect implements CardEffect { private readonly condition; private readonly effect; constructor(condition: (gameState: GameState) => boolean, effect: CardEffect); apply(gameState: GameState, eventData: GameEventData): void; } export declare class TriggeredEffect implements CardEffect { private readonly triggerEvent; private readonly effect; constructor(triggerEvent: string, effect: CardEffect); apply(gameState: GameState, eventData: GameEventData): void; } export declare class ContinuousEffect implements CardEffect { private readonly condition; private readonly applyEffect; private readonly removeEffect; constructor(condition: (gameState: GameState) => boolean, applyEffect: (gameState: GameState) => void, removeEffect: (gameState: GameState) => void); apply(gameState: GameState, _eventData: GameEventData): void; } export declare class DelayedEffect implements CardEffect { readonly delay: number; readonly effect: CardEffect; private turnRegistered; constructor(delay: number, effect: CardEffect); apply(gameState: GameState, eventData: GameEventData): void; } export declare class TargetedEffect implements CardEffect { private readonly targetSelector; private readonly effect; constructor(targetSelector: (gameState: GameState) => unknown, effect: CardEffect); apply(gameState: GameState, eventData: GameEventData): void; } export declare class DrawCardEffect implements CardEffect { readonly count: number; constructor(count?: number); apply(gameState: GameState, eventData: GameEventData): void; } export declare class DamageEffect implements CardEffect { readonly damage: number; constructor(damage: number); apply(_gameState: GameState, eventData: GameEventData): void; } export declare function attachEffectToCard(card: TCard, effect: CardEffect): void; export declare class EffectManager implements EffectManagerInterface { applyCardEffects(card: TCard, gameState: GameState, eventData: GameEventData): void; } export { type GameState, type CardEffect } from '../types/index.js';