import { ExpressionNode } from "../../../common-types";
import { FieldDefinition } from "../../../utils/fieldMaps";
import { AccessHandlerFn } from "../../BaseHandler";
/**
 * Specialized node type for shaman access
 */
interface ShamanExpressionNode extends ExpressionNode {
    field: FieldDefinition;
    nodeType: "shaman";
}
/**
 * Handler for shaman access contexts
 * This handles access to shaman-specific properties
 */
declare const handleShaman: AccessHandlerFn<ShamanExpressionNode>;
/**
 * Specialized node type for totem access
 */
interface TotemExpressionNode extends ExpressionNode {
    field: FieldDefinition;
    nodeType: "totem";
    totemName: string;
}
/**
 * Handler for totem access contexts
 * This handles access to totem properties for Shaman
 */
declare const handleTotem: AccessHandlerFn<TotemExpressionNode>;
/**
 * Specialized node type for feral_spirit access
 */
interface FeralSpiritExpressionNode extends ExpressionNode {
    field: FieldDefinition;
    nodeType: "feral_spirit";
}
/**
 * Handler for feral_spirit access contexts
 * This handles access to feral spirit properties for Enhancement Shaman
 */
declare const handleFeralSpirit: AccessHandlerFn<FeralSpiritExpressionNode>;
/**
 * Specialized node type for lightning_rod access
 */
interface LightningRodExpressionNode extends ExpressionNode {
    nodeType: "lightning_rod";
}
/**
 * Handler for lightning_rod access contexts
 * This handles access to the lightning_rod property for Shaman
 */
declare const handleLightningRod: AccessHandlerFn<LightningRodExpressionNode>;
export { handleFeralSpirit, handleLightningRod, handleShaman, handleTotem, type FeralSpiritExpressionNode, type LightningRodExpressionNode, type ShamanExpressionNode, type TotemExpressionNode, };
//# sourceMappingURL=ShamanHandler.d.ts.map