/** @packageDocumentation * @module Content */ import { CategoryDescription } from "./Category"; import { Content } from "./Content"; import { Descriptor } from "./Descriptor"; import { Field } from "./Fields"; import { Item } from "./Item"; import { TypeDescription } from "./TypeDescription"; import { DisplayValue, DisplayValuesArray, DisplayValuesMap, Value, ValuesArray, ValuesMap } from "./Value"; /** @alpha */ export interface FieldHierarchy { field: Field; childFields: FieldHierarchy[]; } /** @alpha */ export interface StartContentProps { descriptor: Descriptor; } /** @alpha */ export interface ProcessFieldHierarchiesProps { hierarchies: FieldHierarchy[]; } /** @alpha */ export interface StartItemProps { item: Item; } /** @alpha */ export interface StartCategoryProps { category: CategoryDescription; } /** @alpha */ export interface StartFieldProps { hierarchy: FieldHierarchy; } /** @alpha */ export interface StartStructProps { hierarchy: FieldHierarchy; valueType: TypeDescription; namePrefix?: string; rawValues: ValuesMap; displayValues: DisplayValuesMap; } /** @alpha */ export interface StartArrayProps { hierarchy: FieldHierarchy; valueType: TypeDescription; namePrefix?: string; rawValues: ValuesArray; displayValues: DisplayValuesArray; } /** @alpha */ export interface ProcessMergedValueProps { mergedField: Field; requestedField: Field; namePrefix?: string; } /** @alpha */ export interface ProcessPrimitiveValueProps { field: Field; valueType: TypeDescription; namePrefix?: string; rawValue: Value; displayValue: DisplayValue; } /** @alpha */ export interface IContentVisitor { startContent(props: StartContentProps): boolean; finishContent(): void; processFieldHierarchies(props: ProcessFieldHierarchiesProps): void; startItem(props: StartItemProps): boolean; finishItem(): void; startCategory(props: StartCategoryProps): boolean; finishCategory(): void; startField(props: StartFieldProps): boolean; finishField(): void; startStruct(props: StartStructProps): boolean; finishStruct(): void; startArray(props: StartArrayProps): boolean; finishArray(): void; processMergedValue(props: ProcessMergedValueProps): void; processPrimitiveValue(props: ProcessPrimitiveValueProps): void; } /** @internal */ export declare function traverseFieldHierarchy(hierarchy: FieldHierarchy, cb: (h: FieldHierarchy) => boolean): void; /** @alpha */ export declare function traverseContent(visitor: IContentVisitor, content: Content): void; /** @alpha */ export declare function traverseContentItem(visitor: IContentVisitor, descriptor: Descriptor, item: Item): void; /** @alpha */ export declare function addFieldHierarchy(rootHierarchies: FieldHierarchy[], hierarchy: FieldHierarchy): void; /** @internal */ export declare const FIELD_NAMES_SEPARATOR = "$"; /** @internal */ export declare function applyOptionalPrefix(str: string, prefix?: string): string; //# sourceMappingURL=ContentTraverser.d.ts.map