import { type ComponentInternalInstance } from 'vue'; import type { DockviewIDisposable } from 'dockview-core'; export interface ViewComponentConfig { componentName: string; propertyKeys: readonly (keyof TOptions)[]; createApi: (element: HTMLElement, options: TOptions & TFrameworkOptions) => TApi; createView: (id: string, name: string | undefined, component: any, instance: ComponentInternalInstance) => TView; extractCoreOptions: (props: TProps) => TOptions; onApiCreated?: (api: TApi) => DockviewIDisposable[]; } export declare function useViewComponent): void; layout(width: number, height: number): void; }, TOptions, TProps, TEvents, TView, TFrameworkOptions>(config: ViewComponentConfig, props: TProps, emit: (event: 'ready', payload: { api: TApi; }) => void): { el: import("vue").Ref; instance: [TApi] extends [import("vue").Ref] ? import("@vue/shared").IfAny, TApi> : import("vue").Ref, TApi | import("vue").UnwrapRef>; };