;
}
/**
* Captures all information required to instantiate a component based on its type
*/
export declare type ComponentTypeRef = ReactComponent
;
/**
* Service that resolves a component type ref given a layout.
*/
export declare interface ComponentTypeRefResolver extends AbstractComponentTypeRefResolver {
/**
* Returns the type object based on the layout configuration
*
* @param aLayout - the layout object
* @param aLayoutMode - an optional layout mode, defaults to the default mode
* @returns the resolved component type
*/
getTypeByLayout: (aLayout: Layout, aLayoutMode?: string) => Observable;
}
export declare interface ContentComponentProps {
/**
* Rendering context used to render the component reference
*/
ctx?: RenderingContextInput;
/**
* Points to a piece of external content
*/
[KEY_ID]?: string;
/**
* Optional layout mode
*/
[KEY_LAYOUT_MODE]?: string;
}
/**
* Creates a `ReactProvider` that resolves its mandatory
* and optional elements and delegates the creation of the provided
* value to a callback function with these dependencies. The callback
* returns an observable and the observable sequence will be provided.
*
* @param fct - the generator function for the value
* @param ctx - the context to provider
* @param req - array of required dependencies
* @param opt - array of optional dependencies
*
* @returns a module that automatically resolves the dependencies before calling the function
*/
export declare const createDynamicReactProvider: DynamicReactProviderFactory;
/**
* Creates a `ReactProvider` that resolves its mandatory
* and optional elements and delegates the creation of the provided
* value to a callback function with these dependencies.
*
* @param fct - the generator function for the value
* @param ctx - the context to provider
* @param req - array of required dependencies
* @param opt - array of optional dependencies
*
* @returns a module that automatically resolves the dependencies before calling the function
*/
export declare const createInjectableReactProvider: InjectableReactProviderFactory;
/**
* Constructs a module component that includes the referenced
* providers in topological order
*
* @param aProviders - the set of providers
* @returns the component
*/
export declare const createModuleFromProvider: (aProviders: ReactProvider[]) => import("../public_api").ReactComponent;
/**
* Construct the react context and make sure we set the display name
*
* @param aName - the display name
* @param aDefault - optionally a default value
*
* @returns the context with mandatory `displayName` field
*/
export declare function createReactContext(aName: string, aDefault?: T): Required>;
/**
* Constructs an instance of a provider
*
* @param module - the module
* @param provides - the context the module provides
* @param dependencies - dependencies
* @param optionalDependencies - optional dependencies
*
* @returns the provider instance
*/
export declare function createReactProvider(module: ReactModuleType, provides: Context, dependencies?: Context[], optionalDependencies?: Context[]): ReactProvider;
export declare interface DynamicReactProviderFactory {
(fct: (req?: never, opt?: never) => ObservableInput, ctx: Context): ReactProvider;
(fct: (req: [R1], opt?: never) => ObservableInput, ctx: Context, req: [Context]): ReactProvider;
(fct: (req: [R1, R2], opt?: never) => ObservableInput, ctx: Context, req: [Context, Context]): ReactProvider;
(fct: (req: [R1, R2, R3], opt?: never) => ObservableInput, ctx: Context, req: [Context, Context, Context]): ReactProvider;
(fct: (req: [R1, R2, R3, R4], opt?: never) => ObservableInput, ctx: Context, req: [Context, Context, Context, Context]): ReactProvider;
(fct: (req: never, opt: [O1?]) => ObservableInput, ctx: Context, req: never, opt: [Context]): ReactProvider;
(fct: (req: never, opt: [O1?, O2?]) => ObservableInput, ctx: Context, req: never, opt: [Context, Context]): ReactProvider;
(fct: (req: never, opt: [O1?, O2?, O3?]) => ObservableInput, ctx: Context, req: never, opt: [Context, Context, Context]): ReactProvider;
(fct: (req: [], opt: [O1?]) => ObservableInput, ctx: Context, req: [], opt: [Context]): ReactProvider;
(fct: (req: [], opt: [O1?, O2?]) => ObservableInput, ctx: Context, req: [], opt: [Context, Context]): ReactProvider;
(fct: (req: [], opt: [O1?, O2?, O3?]) => ObservableInput, ctx: Context, req: [], opt: [Context, Context, Context]): ReactProvider;
(fct: (req: [R1], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context], opt: [Context]): ReactProvider;
(fct: (req: [R1], opt: [O1?, O2?]) => ObservableInput, ctx: Context, req: [Context], opt: [Context, Context]): ReactProvider;
(fct: (req: [R1, R2], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context], opt: [Context]): ReactProvider;
(fct: (req: [R1, R2], opt: [O1?, O2?]) => ObservableInput, ctx: Context, req: [Context, Context], opt: [Context, Context]): ReactProvider;
(fct: (req: [R1, R2, R3], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context, Context], opt: [Context]): ReactProvider;
(fct: (req: [R1, R2, R3], opt: [O1?, O2?]) => ObservableInput, ctx: Context, req: [Context, Context, Context], opt: [Context, Context]): ReactProvider;
(fct: (req: [R1, R2, R3, R4], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context, Context, Context], opt: [Context]): ReactProvider;
(fct: (req: [R1, R2, R3, R4, R5], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context, Context, Context, Context], opt: [Context]): ReactProvider;
(fct: (req: [R1, R2, R3, R4, R5, R6], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context, Context, Context, Context, Context], opt: [Context]): ReactProvider;
(fct: (req: [R1, R2, R3, R4, R5, R6, R7], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context, Context, Context, Context, Context, Context], opt: [Context]): ReactProvider;
}
export declare interface InjectableReactProviderFactory {
(fct: (req?: never, opt?: never) => T, ctx: Context): ReactProvider;
(fct: (req: [R1], opt?: never) => T, ctx: Context, req: [Context]): ReactProvider;
(fct: (req: [R1, R2], opt?: never) => T, ctx: Context, req: [Context, Context]): ReactProvider;
(fct: (req: [R1, R2, R3], opt?: never) => T, ctx: Context, req: [Context, Context, Context]): ReactProvider;
(fct: (req: [R1, R2, R3, R4], opt?: never) => T, ctx: Context, req: [Context, Context, Context, Context]): ReactProvider;
(fct: (req: never, opt: [O1?]) => T, ctx: Context, req: never, opt: [Context]): ReactProvider;
(fct: (req: never, opt: [O1?, O2?]) => T, ctx: Context, req: never, opt: [Context, Context]): ReactProvider;
(fct: (req: never, opt: [O1?, O2?, O3?]) => T, ctx: Context, req: never, opt: [Context, Context, Context]): ReactProvider;
(fct: (req: [], opt: [O1?]) => T, ctx: Context, req: [], opt: [Context]): ReactProvider;
(fct: (req: [], opt: [O1?, O2?]) => T, ctx: Context, req: [], opt: [Context