import { JSX, Accessor } from 'solid-js';
import { DockviewIDisposable } from 'dockview-core';
export declare const SolidPartContext: import("solid-js").Context<{}>;
export interface SolidPortalStore {
    addPortal: (disposeFn: DockviewIDisposable) => DockviewIDisposable;
}
export declare class SolidPart<P extends object = {}, C extends object = {}> {
    private readonly parent;
    private readonly portalStore;
    private readonly component;
    private readonly parameters;
    private readonly context?;
    private _initialProps;
    private componentInstance?;
    private ref?;
    private disposed;
    constructor(parent: HTMLElement, portalStore: SolidPortalStore, component: (props: P) => JSX.Element, parameters: P, context?: C | undefined);
    update(props: Record<string, any>): void;
    private createPortal;
    dispose(): void;
}
type PortalLifecycleHook = () => [
    Accessor<DockviewIDisposable[]>,
    (cleanup: DockviewIDisposable) => DockviewIDisposable
];
/**
 * A React Hook that returns an array of portals to be rendered by the user of this hook
 * and a disposable function to add a portal. Calling dispose removes this portal from the
 * portal array
 */
export declare const usePortalsLifecycle: PortalLifecycleHook;
export {};
//# sourceMappingURL=solid.d.ts.map