import type * as Ast from '@unified-latex/unified-latex-types'; /** * Create an Argument. `special.braces` can optionally specify * the signature of the open/close marks that each argument uses. For example * ``` * arg("a", { braces: "[]" }); * ``` * will result in arguments `[a]`. Valid braces are `*`, `[`, `{`, `<`, and `(`. * * `null` may be passed as the value of an empty optional argument. If `null` is passed, * the `openBrace` and `closeBrace` of the argument will be set to empty strings and the * contents will be set to an empty array. For example, * ``` * args([null, "b"], { braces: "[]{}" }); * ``` * will produce the same structure as if the the first "optional argument" were omitted in regular parsing. */ export declare function arg(args: CoercibleArgument | Ast.Node[], special?: ArgumentSpecialOptions): Ast.Argument; /** * Create an Argument list. `special.braces` can optionally specify * the signature of the open/close marks that each argument uses. For example * ``` * args(["a", "b"], { braces: "[]{}" }); * ``` * will result in arguments `[a]{b}`. Valid braces are `*`, `[`, `{`, `(`, and `<`. * * `null` may be passed as the value of an empty optional argument. If `null` is passed, * the `openBrace` and `closeBrace` of the argument will be set to empty strings and the * contents will be set to an empty array. For example, * ``` * args([null, "b"], { braces: "[]{}" }); * ``` * will produce the same structure as if the the first "optional argument" were omitted in regular parsing. */ export declare function args(args: CoercibleArgument | CoercibleArgument[], special?: ArgumentsSpecialOptions): Ast.Argument[]; declare type ArgumentSpecialOptions = { braces?: string; openMark?: string; closeMark?: string; }; declare type ArgumentsSpecialOptions = { braces?: string; defaultOpenMark?: string; defaultCloseMark?: string; }; declare type CoercibleArgument = null | CoercibleNode | Ast.Argument; declare type CoercibleNode = string | Ast.Node; /** * Create an Environment node. */ export declare function env(name: string, body: CoercibleNode | CoercibleNode[], envArgs?: CoercibleArgument | CoercibleArgument[], special?: unknown): Ast.Environment; /** * Create a Macro with the given `name`. The macro * may be followed by any number of arguments. */ export declare function m(name: string, marcoArgs?: CoercibleArgument | CoercibleArgument[], special?: MacroSpecialOptions): Ast.Macro; declare type MacroSpecialOptions = { escapeToken?: string; }; /** * Create a String node from `value` */ export declare function s(value: string | Ast.String): Ast.String; /** * Whitespace node. */ export declare const SP: Ast.Whitespace; export { }