import { Cell, MergedCell } from './reactive';
import { RENDERING_CONTEXT_PROPERTY, RENDERED_NODES_PROPERTY, COMPONENT_ID_PROPERTY, DOMApi } from './types';

type RenderableType = Node | string | number | {
    [RENDERED_NODES_PROPERTY]: unknown[];
};
/**
 * Root is the top-level application context (owner in Ember naming).
 * Acts as main DI container and metadata storage.
 */
export declare class Root {
    [RENDERED_NODES_PROPERTY]: Array<Node>;
    [COMPONENT_ID_PROPERTY]: number;
    [RENDERING_CONTEXT_PROPERTY]: DOMApi | undefined;
    document: Document;
    constructor(document?: Document);
}
/**
 * Create a new Root instance.
 */
export declare function createRoot(document?: Document): Root;
/**
 * Resolve a renderable function to its value, creating a reactive formula if needed.
 * This is used to unwrap function-based templates into their actual renderable content.
 */
export declare function resolveRenderable(child: Function, debugName?: string): RenderableType | MergedCell | Cell;
export {};
