import { Ast, Constant } from "../../language"; import { NodeIdMap, TXorNode } from "."; import { XorNode } from "./xorNode"; export type TKeyValuePair = FieldSpecificationKeyValuePair | LetKeyValuePair | RecordKeyValuePair | SectionKeyValuePair; export interface IKeyValuePair { readonly source: TXorNode; readonly key: Key; readonly pairKind: PairKind; readonly keyLiteral: string; readonly normalizedKeyLiteral: string; readonly value: TXorNode | undefined; } export interface FieldSpecificationKeyValuePair extends IKeyValuePair { readonly pairKind: PairKind.FieldSpecification; readonly optional: Ast.IConstant | undefined; } export interface LetKeyValuePair extends IKeyValuePair { readonly pairKind: PairKind.LetExpression; } export interface RecordKeyValuePair extends IKeyValuePair { readonly pairKind: PairKind.Record; } export interface SectionKeyValuePair extends IKeyValuePair { readonly pairKind: PairKind.SectionMember; } export declare enum PairKind { FieldSpecification = "RecordType", LetExpression = "LetExpression", Record = "Record", SectionMember = "Section" } export declare function assertIterChildrenAst(nodeIdMapCollection: NodeIdMap.Collection, parentId: number): ReadonlyArray; export declare function assertIterChildrenXor(nodeIdMapCollection: NodeIdMap.Collection, parentId: number): ReadonlyArray; export declare function assertIterXor(nodeIdMapCollection: NodeIdMap.Collection, nodeIds: ReadonlyArray): ReadonlyArray; export declare function iterChildrenAst(nodeIdMapCollection: NodeIdMap.Collection, parentId: number): ReadonlyArray | undefined; export declare function nextSiblingXor(nodeIdMapCollection: NodeIdMap.Collection, nodeId: number): TXorNode | undefined; export declare function nthSiblingXor(nodeIdMapCollection: NodeIdMap.Collection, nodeId: number, offset: number): TXorNode | undefined; export declare function iterArrayWrapper(nodeIdMapCollection: NodeIdMap.Collection, arrayWrapper: TXorNode): ReadonlyArray; export declare function iterFieldProjection(nodeIdMapCollection: NodeIdMap.Collection, fieldProjection: TXorNode): ReadonlyArray>; export declare function iterFieldProjectionFieldLiterals(nodeIdMapCollection: NodeIdMap.Collection, fieldProjection: TXorNode): ReadonlyArray; export declare function iterFunctionExpressionParameters(nodeIdMapCollection: NodeIdMap.Collection, functionExpression: TXorNode): ReadonlyArray>>; export declare function iterFunctionExpressionParameterNames(nodeIdMapCollection: NodeIdMap.Collection, functionExpression: TXorNode): ReadonlyArray; export declare function iterFunctionExpressionParameterNameLiterals(nodeIdMapCollection: NodeIdMap.Collection, functionExpression: TXorNode): ReadonlyArray; export declare function iterFieldSpecificationList(nodeIdMapCollection: NodeIdMap.Collection, fieldSpecificationList: TXorNode): ReadonlyArray; export declare function iterInvokeExpression(nodeIdMapCollection: NodeIdMap.Collection, invokeExpression: TXorNode): ReadonlyArray; export declare function iterLetExpression(nodeIdMapCollection: NodeIdMap.Collection, letExpression: TXorNode): ReadonlyArray; export declare function iterListItems(nodeIdMapCollection: NodeIdMap.Collection, list: TXorNode): ReadonlyArray; export declare function iterRecord(nodeIdMapCollection: NodeIdMap.Collection, record: TXorNode): ReadonlyArray; export declare function iterRecordType(nodeIdMapCollection: NodeIdMap.Collection, recordType: TXorNode): ReadonlyArray; export declare function iterSection(nodeIdMapCollection: NodeIdMap.Collection, section: TXorNode): ReadonlyArray;