import { AgencyNode, Expression, FunctionCall } from "../types.js"; import { BaseNode } from "./base.js"; export type AccessChainElement = { kind: "property"; name: string; optional?: boolean; } | { kind: "index"; index: Expression; optional?: boolean; } | { kind: "slice"; start?: Expression; end?: Expression; optional?: boolean; } | { kind: "methodCall"; functionCall: FunctionCall; optional?: boolean; } | { kind: "call"; optional?: boolean; } & Pick; export type ValueAccess = BaseNode & { type: "valueAccess"; base: AgencyNode; chain: AccessChainElement[]; async?: boolean; };