/** * Parse an effect declaration: effect @name(ArgType) -> RetType * * Effect declarations are type-only — they tell the typechecker what * types flow through perform() and resume() for a given effect. * They produce a null AST node at runtime (erased). * * Syntax: effect @name(ArgType) -> RetType * Example: effect @log(String) -> Null */ import type { AstNode } from '../types'; import type { ParserContext } from '../ParserContext'; export declare function parseEffectDeclaration(ctx: ParserContext): AstNode;