import { Location } from '../source/Location'; export declare type BaseNode = Location & { readonly type: string; }; export declare type NodeContainer = BaseNode & { readonly type: 'container'; readonly children: ReadonlyArray; }; export declare type NodeComment = BaseNode & { readonly type: 'comment'; readonly value: string; }; export declare type NodeText = BaseNode & { readonly type: 'text'; readonly value: string; }; export declare type NodeData = BaseNode & { readonly type: 'data'; readonly escaped: boolean; readonly value: string; readonly filters?: ReadonlyArray<{ readonly name: string; readonly args: ReadonlyArray; }>; }; export declare type BaseFunction = BaseNode & { readonly name: string; readonly args?: ReadonlyArray; }; export declare type NodeFunction = BaseFunction & { readonly type: 'function'; }; export declare type NodeRawFunction = BaseFunction & { readonly type: 'raw-function'; readonly content: string; }; export declare type NodeSequence = BaseNode & { readonly type: 'sequence'; readonly data: ReadonlyArray<[NodeFunction, NodeContainer]>; readonly ending: NodeFunction; }; export declare type Node = NodeContainer | NodeComment | NodeText | NodeData | NodeFunction | NodeRawFunction | NodeSequence; export declare type NodeWithoutLocation = Omit | Omit | Omit | Omit | Omit | Omit | Omit; export declare type NodeContainerRWL = Omit & { readonly children: ReadonlyArray; }; export declare type NodeCommentRWL = Omit; export declare type NodeTextRWL = Omit; export declare type NodeDataRWL = Omit; export declare type NodeFunctionRWL = Omit; export declare type NodeRawFunctionRWL = Omit; export declare type NodeSequenceRWL = Omit & { readonly data: ReadonlyArray<[NodeFunctionRWL, NodeContainerRWL]>; readonly ending: NodeFunctionRWL; }; export declare type NodeRecursiveWithoutLocation = NodeContainerRWL | NodeCommentRWL | NodeTextRWL | NodeDataRWL | NodeFunctionRWL | NodeRawFunctionRWL | NodeSequenceRWL; export declare const isNotEmptyContainer: (node?: NodeContainer | undefined) => node is NodeContainer;