end-of-semester-report/node_modules/@unified-latex/unified-latex-util-argspec/index.d.ts
2025-05-14 16:14:35 +07:00

97 lines
2.1 KiB
TypeScript

declare interface Arg extends AstNode {
openBrace: string;
closeBrace: string;
}
declare namespace ArgSpecAst {
export {
Ast,
Node_2 as Node,
LeadingWhitespace,
DefaultArgument,
DefaultArguments,
Embellishment,
Group
}
}
export { ArgSpecAst }
declare type Ast = Node_2[] | Node_2;
declare interface AstNode {
type: string;
}
declare interface Body_2 extends AstNode {
type: "body";
}
declare interface DefaultArgument {
defaultArg?: string;
}
declare interface DefaultArguments {
defaultArg?: string[];
}
declare interface Embellishment extends DefaultArguments, AstNode {
type: "embellishment";
embellishmentTokens: string[];
}
declare interface Group extends AstNode {
type: "group";
content: (Group | string)[];
}
declare interface LeadingWhitespace {
noLeadingWhitespace: boolean | undefined;
}
declare interface Mandatory extends LeadingWhitespace, DefaultArgument, Arg {
type: "mandatory";
}
declare type Node_2 = Optional | Mandatory | Verbatim | Body_2 | Group | Until;
declare type Optional = OptionalArg | OptionalStar | OptionalToken | Embellishment;
declare interface OptionalArg extends LeadingWhitespace, DefaultArgument, Arg {
type: "optional";
}
declare interface OptionalStar extends LeadingWhitespace, AstNode {
type: "optionalStar";
}
declare interface OptionalToken extends LeadingWhitespace, AstNode {
type: "optionalToken";
token: string;
}
/**
* Parse an `xparse` argument specification string to an AST.
* This function caches results. Don't mutate the returned AST!
*
* @param {string} [str=""] - LaTeX string input
* @returns - AST for LaTeX string
*/
export declare function parse(str?: string): ArgSpecAst.Node[];
/**
* Print an `xparse` argument specification AST
* to a string.
*/
export declare function printRaw(node: ArgSpecAst.Node | string | (ArgSpecAst.Node | string)[], root?: boolean): string;
declare interface Until extends AstNode {
type: "until";
stopTokens: string[];
}
declare interface Verbatim extends Arg {
type: "verbatim";
}
export { }