import { Unit } from 'effector'; import * as solid_js_types_reactive_signal from 'solid-js/types/reactive/signal'; import { Component } from 'solid-js'; type Shape = { [key: string]: Unit; }; type UnprefixedKey = Original extends `$${infer Unprefixed}` ? Unprefixed : Original; type PrefixedKey = `$${Key}`; type Unprefixed = { [key in UnprefixedKey]: T extends { [inner in key]: unknown; } ? T[key] : key extends string ? T[PrefixedKey] : never; }; type OnlyUnits = Pick ? Key : never; }[keyof T]>; /** * Creates model `factory` * @param creator Function that returns new `model` instance * @returns Factory with `createModel` method, `useModel` hook and model `Provider` */ declare const modelFactory: any>(creator: T) => { /** Function that returns new `model` instance */ createModel: T; /** Hook that returns current `model` instance */ useModel: () => NonNullable>; /** `Provider` to pass current `model` instance into */ Provider: solid_js_types_reactive_signal.ContextProviderComponent | null>; '@@unitShape': () => Unprefixed>>>; }; type Model> = ReturnType; /** * HOC that wraps your `View` into model `Provider`. Also adds `model` prop that will be passed into `Provider` * @param factory Factory that will be passed through Context * @param View Root component that will be wrapped into Context * @returns Wrapped component */ declare const modelView: any; /** Hook that returns current `model` instance */ useModel: () => any; /** `Provider` to pass current `model` instance into */ Provider: solid_js_types_reactive_signal.ContextProviderComponent; '@@unitShape': () => Unprefixed>; }>(factory: T, View: Component; }>) => Component; }>; export { Model, modelFactory, modelView };