import { type Scanner, type WhitespaceChar } from "@ark/util"; import type { RuntimeState } from "../../reduce/dynamic.ts"; import type { StaticState, s } from "../../reduce/static.ts"; import type { BaseCompletions } from "../../string.ts"; import { parseEnclosed, type EnclosingQuote, type EnclosingStartToken } from "./enclosed.ts"; import { parseUnenclosed } from "./unenclosed.ts"; export declare const parseOperand: (s: RuntimeState) => void; export type parseOperand = s["unscanned"] extends Scanner.shift ? lookahead extends "(" ? s.reduceGroupOpen : lookahead extends EnclosingStartToken ? parseEnclosed : lookahead extends WhitespaceChar ? parseOperand, $, args> : lookahead extends "d" ? unscanned extends (Scanner.shift) ? parseEnclosed : parseUnenclosed : lookahead extends "x" ? unscanned extends Scanner.shift<"/", infer nextUnscanned> ? parseEnclosed : parseUnenclosed : parseUnenclosed : s.completion<`${s["scanned"]}${BaseCompletions<$, args>}`>;