import { PluginUIContext } from 'molstar/lib/mol-plugin-ui/context';
import { PluginUISpec } from 'molstar/lib/mol-plugin-ui/spec';
import { ComponentProps, JSXElementConstructor } from 'react';
export interface LayoutSpecComponent<T extends JSXElementConstructor<any>> {
    target: string | HTMLElement;
    component: T;
    props?: ComponentProps<T>;
}
export declare function LayoutSpecComponent<T extends JSXElementConstructor<any>>(target: string | HTMLElement, component: T, props?: ComponentProps<T>): LayoutSpecComponent<T>;
export type LayoutSpec = LayoutSpecComponent<any>[];
export declare function createPluginSplitUI(options: {
    layout: LayoutSpec;
    spec?: PluginUISpec;
    render?: (component: any, container: Element) => any;
    onBeforeUIRender?: (ctx: PluginUIContext) => (Promise<void> | void);
}): Promise<PluginUIContext>;
export declare function resolveHTMLElement(element: HTMLElement | string): HTMLElement;
