import { TreeViewAnyPluginSignature, TreeViewPlugin } from './plugin';
export type DefaultizedProps
= Omit
& Required> & AdditionalProps;
export type MergePluginsProperty = TPlugins extends readonly [plugin: infer P, ...otherPlugin: infer R] ? P extends TreeViewAnyPluginSignature ? P[TProperty] & MergePluginsProperty : {} : {};
export type ConvertPluginsIntoSignatures = TPlugins extends readonly [plugin: infer P, ...otherPlugin: infer R] ? P extends TreeViewPlugin ? [TSignature, ...ConvertPluginsIntoSignatures] : ConvertPluginsIntoSignatures : [];
export interface MergePlugins {
state: MergePluginsProperty;
instance: MergePluginsProperty;
params: MergePluginsProperty;
defaultizedParams: MergePluginsProperty;
dependantPlugins: MergePluginsProperty;
events: MergePluginsProperty;
models: MergePluginsProperty;
}