import { Style, Tag } from '../system/platform/Style';
import { Tree } from '../tree';
import { Dict } from '../types/Dict';
import { LayoutNode } from './LayoutNode';
import { Component } from './component';
import { LayoutBase } from './layout';
export declare function buildTree(prefix: string, component: Component, base: LayoutBase, trait: LayoutNode, extractStyle: ExtractStyleFunction): {
    tree: Tree<Tag>[];
    map: Dict<Tree<Tag>>;
    root: string[];
};
export declare const getBaseStyle: (base: LayoutBase, parentPath: string[], extractStyle: (leafId: string, leafComp: Component) => Style) => Style[];
export declare const getParentPath: (component: Component, root: Component) => any[];
export type ExtractStyleFunction = (leafId: string, component: Component, parent: Component) => Style;
export declare const getChildLeaves: (component: Component) => Component[];
export declare const expandSlot: (component: Component, trait: LayoutNode, slotId: string, path: number[], expand: boolean, extractStyle: ExtractStyleFunction) => Tag[];
export declare const reflectComponentBaseTrait: (root: Component, prefix: string, component: Component, base: LayoutBase, trait: LayoutNode, extractStyle: ExtractStyleFunction, expand?: boolean) => Dict<LayoutNode>;
