import { Ast, Token } from "../../language"; import { ParseContext } from ".."; export declare function assertAsNodeKind(node: ParseContext.TNode, expectedNodeKinds: ReadonlyArray | T["kind"]): ParseContext.Node; export declare function assertIsNodeKind(node: ParseContext.TNode, expectedNodeKinds: ReadonlyArray | T["kind"]): asserts node is ParseContext.Node; export declare function newState(): ParseContext.State; export declare function copyState(state: ParseContext.State): ParseContext.State; export declare function isNodeKind(node: ParseContext.TNode, expectedNodeKinds: ReadonlyArray | T["kind"]): node is ParseContext.Node; export declare function nextId(state: ParseContext.State): number; export declare function nextAttributeIndex(parentNode: ParseContext.TNode): number; export declare function startContext(state: ParseContext.State, nodeKind: T["kind"], tokenIndexStart: number, tokenStart: Token.Token | undefined, parentNode: ParseContext.TNode | undefined): ParseContext.Node; export declare function startContextAsParent(state: ParseContext.State, nodeKind: T["kind"], existingNodeId: number, existingNodeTokenStart: Token.Token | undefined): ParseContext.Node; export declare function endContext(state: ParseContext.State, contextNode: ParseContext.Node, astNode: T): ParseContext.TNode | undefined; export declare function deleteAst(state: ParseContext.State, nodeId: number, parentWillBeDeleted: boolean): void; export declare function deleteContext(state: ParseContext.State, nodeId: number): ParseContext.TNode | undefined;