import { Type } from '../di'; import { Renderable } from './Renderable'; import { RenderableArg } from '../common'; /** * A container that holds a Renderable class and a configuration to * use when it is instanatiated. * @export * @class ConfiguredRenderable * @template T A subclass of a renderable. * @example * class MyClass {} * * const configured = new ConfiguredRenderable(MyClass, { configProp: true }); * * ConfiguredRenderable.resolve(configured); // => MyClass * ConfiguredRenderable.resolveConfiguration(configured); // => { configProp: true } */ export declare class ConfiguredRenderable { private _renderable; private _config; /** * Creates an instance of ConfiguredRenderable. * @param {Type} _renderable * @param {*} _config */ constructor(_renderable: Type, _config: any); /** * The renderable to instantiate. * @readonly * @type {Type} */ readonly renderable: Type; /** * The configuration for the renderable. * @readonly * @type {*} */ readonly config: any; /** * Resolves a renderable class from a configured renderable or renderable instance. * @static * @template T The renderable subclass. * @param {(Type|ConfiguredRenderable|T)} item * @returns {Type} */ static resolve(item: Type | ConfiguredRenderable | T): Type; static isRenderableArg(config: any): config is RenderableArg; static isRenderableConstructor(arg: any): arg is ConfiguredRenderable | Type; /** * Resolves a configuration from a configured renderable. * @static * @param {(ConfiguredRenderable|any)} item * @returns {*} */ static resolveConfiguration(item: ConfiguredRenderable | any): any; /** * Determines whether a resolved renderable is within a list of resolved renderables. * @static * @param {RenderableArg[]} list * @param {RenderableArg} item * @returns {boolean} */ static inList(list: RenderableArg[], item: RenderableArg): boolean; }