import { ComponentDefinition, ComponentScript } from "../scenegraph"; import * as Stmt from "./Statement"; export declare class ComponentScopeResolver { readonly componentMap: Map; readonly parserLexerFn: (scripts: ComponentScript[]) => Promise; private readonly excludedNames; /** * @param componentMap Component definition map to reference for function resolution. * @param parserLexerFn Function used to parse statements out of given components */ constructor(componentMap: Map, parserLexerFn: (scripts: ComponentScript[]) => Promise); /** * Resolves the component functions in scope based on the extends hierarchy. * @param component Instance of the component to resolve function scope for. * @returns All statements in scope for the resolved component */ resolve(component: ComponentDefinition): Promise; /** * Takes a sequence of statement collections and flattens them into a * single statement collection. This function assumes that the components * given in the statement map are in order of hierarchy with the furthest * inheriting component first. * @param statementMap Statement collections broken up by component. * @returns A collection of statements that have been flattened based on hierarchy. */ private flatten; /** * Generator function that walks the component hierarchy and produces an * ordered list of component statement collections. * @param component Component to begin statement aggregation chain. * @returns An ordered array of component statement arrays. */ private getStatements; }