import { Logger, LoggerService } from '@acoustic-content-sdk/api'; import { Observable, UnaryFunction } from 'rxjs'; export declare const ROOT_ID: string; export interface NavigationJson { id: string; children?: NavigationJson[]; } interface Navigation { children: Record; parents: Record; } export declare function isNotRoot(aId: string): boolean; /** * Builds a navigation structure from the navigation element * * @param aJson - the navigation element * * @returns the navigation structure */ export declare function navigationFromJson(aJson: NavigationJson, aLogger: Logger): Navigation; /** * Interface that exposes selectors to the navigation structure */ export interface NavSelectors { /** * ID of the (virtual) root item of the navigation */ root: string; /** * Selects the children of a particular item */ selectChildren: UnaryFunction>; /** * Selects the parent of a particular item */ selectParent: UnaryFunction>; } /** * Returns selectors that access parent and child nodes from a navigation structure * * @param aJson$ - the JSON that represents the navigation * @param aLogSvc - optional logger service * @returns the selectors */ export declare function getNavSelectors(aJson$: Observable, aLogSvc?: LoggerService): NavSelectors; /** * Constructs a breadcrumb trail starting at a particular ID * * @param aId - the start ID * @param aSelParent - selector function for the parent node * @param aSelId - selector function for the ID from a parent node * * @returns the breadcrumb trail */ export declare function createBreadcrumb(aId: string, aSelParent: UnaryFunction>, aSelId: UnaryFunction): Observable; export {};