import { InjectionToken, Input } from "@angular/core";
import { ComponentData } from "./../index-component/component-data";
import { TreeNodeComponentFeatures } from "./custom-tree-node-component-features"

export declare const CUSTOM_TREE_COMPONENT_TOKEN: InjectionToken<any>;


/**
 * A provider to be implemented in order to supply data that would replace the component used in the related data selectors
 *
 * @export
 * @interface TreeNodeComponentProvider
 */
export declare interface TreeNodeComponentProvider {
    /**
     * Gets the component data for the registered components
     *
     * @param {TreeNodeComponentFeatures} feature Used to determine for which feature will this component be used.
     * Currently only supported for "related-data"
     * @param {string} entitySet Cannot be null. The entity set for which the component data is to be used.
     * If the entity set is an empty string the component data will be used for all entity sets for the current feature.
     * Example of entity sets: "newsitems", "blogposts", "events", "pressreleases"
     * @return {*}  {ComponentData}
     * @memberof TreeNodeComponentProvider
     */
     getComponentData(feature: TreeNodeComponentFeatures, entitySet: string): ComponentData
}
