export declare enum NodeType {
Row = "row",
Delimited = "delimited",
Accent = "accent",
Macro = "macro",
Table = "table",
SubSup = "subsup",
Limits = "limits",
Frac = "frac",
Root = "root"
}
export type Row = C & {
readonly type: NodeType.Row;
readonly children: readonly Node[];
};
export type Delimited = C & {
readonly type: NodeType.Delimited;
readonly children: readonly [Row];
readonly leftDelim: Atom;
readonly rightDelim: Atom;
};
export declare enum AccentType {
Hat = "hat",
Bar = "bar",
Vec = "vec",
Dot = "dot",
DDot = "ddot",
Tilde = "tilde",
Acute = "acute",
Grave = "grave"
}
export declare const isAccentType: (accent: string) => accent is AccentType;
export type Accent = C & {
readonly type: NodeType.Accent;
readonly accent: AccentType;
readonly wide: boolean;
readonly children: readonly [Row];
};
export type Macro = C & {
readonly type: NodeType.Macro;
readonly children: readonly [Row];
};
export type RowStyle = {
readonly border?: 'top' | 'bottom';
readonly alignment?: 'top' | 'middle' | 'bottom';
};
type ColStyle = {
readonly border?: 'left' | 'right';
readonly alignment?: 'left' | 'center' | 'right';
};
export type Table = C & {
readonly type: NodeType.Table;
readonly children: readonly (Row | null)[];
readonly rowCount: number;
readonly colCount: number;
readonly delimiters?: {
readonly left: Atom;
readonly right: Atom;
};
readonly rowStyles?: readonly (RowStyle | null)[];
readonly colStyles?: readonly (ColStyle | null)[];
};
export type SubSup = C & {
readonly type: NodeType.SubSup;
readonly children: readonly [Row | null, Row | null];
};
export type Limits = C & {
readonly type: NodeType.Limits;
readonly inner: Node;
readonly children: readonly [Row, Row | null];
};
export type Frac = C & {
readonly type: NodeType.Frac;
readonly children: readonly [Row, Row];
};
export type Root = C & {
readonly type: NodeType.Root;
readonly children: readonly [Row | null, Row];
};
export type Atom = C & A;
export type Node = Row | Delimited | Accent | Macro | Table | SubSup | Limits | Frac | Root | Atom;
export {};