import { Context } from "./context.js";
import { Shell } from "./parts/shell.js";
import { prepare_light_view } from "./units/light_view.js";
import { prepare_shadow_view } from "./units/shadow_view.js";
import { prepare_light_component } from "./units/light_component.js";
import { prepare_shadow_component } from "./units/shadow_component.js";
import { BaseElementClass, BaseElementClasses } from "../base/element.js";
import { prepare_shadow_componentify } from "./units/shadow_componentify.js";
export declare class Nexus<C extends Context> extends Shell<C> {
    lightComponent: ReturnType<typeof prepare_light_component<C>>;
    shadowComponent: ReturnType<typeof prepare_shadow_component<C>>;
    lightView: ReturnType<typeof prepare_light_view<C>>;
    shadowView: ReturnType<typeof prepare_shadow_view<C>>;
    /** wrap a shadow view into a shadow component */
    shadowComponentify: ReturnType<typeof prepare_shadow_componentify<C>>;
    constructor(context?: C);
    /** wire a custom element for css theme and state reactivity */
    component: <E extends BaseElementClass>(Element: E) => E;
    /** wire custom elements for css theme and state reactivity */
    components: <E extends BaseElementClasses>(elements: E) => { [P in keyof E]: any; };
}
export declare const nexus: Nexus<Context>;
/** @deprecated renamed to `nexus` */
export declare const defaultNexus: Nexus<Context>;
export declare const lightView: <P extends any[]>(renderer: import("./parts/types.js").LightViewRenderer<Context, P>) => (...props: P) => import("lit-html/directive.js").DirectiveResult<any>;
export declare const lightComponent: (renderer: import("./parts/types.js").LightComponentRenderer<Context>) => typeof import("../index.js").LightElement;
export declare const shadowView: <P extends any[]>(renderer: import("./parts/types.js").ShadowViewRenderer<Context, P>) => (props: P, meta?: Partial<{
    content: import("lit-html").TemplateResult;
    auto_exportparts: boolean;
    attrs: import("./parts/types.js").ShadowAttrs;
}>) => import("lit-html/directive.js").DirectiveResult<any>;
export declare const shadowComponent: (renderer: import("./parts/types.js").ShadowComponentRenderer<Context>) => typeof import("../index.js").ShadowElement;
export declare const component: <E extends BaseElementClass>(Element: E) => E;
export declare const components: <E extends BaseElementClasses>(elements: E) => { [P in keyof E]: any; };
export declare const shadowComponentify: <V extends (p: []) => import("lit-html/directive.js").DirectiveResult<any>>(View: V) => typeof import("../index.js").ShadowElement;
