export declare type HTMLOrSVGElement = HTMLElement | SVGElement; export declare type IEffect = (elem?: TElement | null) => TReturn; export declare type Primitive = string | number | boolean; export declare type ICssVariable = Record; export declare type OnlyNonPrimitiveKey = keyof { [P in keyof T as T[P] extends Primitive ? never : P]: T[P]; }; export declare type IEqualFunction = T extends Primitive | Array ? (before: T, after: T) => boolean : T extends object ? IEqualFunctionMap | ((before: T, after: T) => boolean) : never; export declare type IEqualFunctionMap = { [key in keyof T]?: IEqualFunction; }; export declare type ICreateEffect = (fn: IEffect) => void; export declare type ISetupOptions = { createVariable?: (value: T, eq?: IEqualFunctionMap | undefined) => T; createEffect?: ICreateEffect; createComputed?: (fn: () => T, eq?: IEqualFunction | undefined) => { value: T; }; }; export declare type ICreateEffectExecute = () => (() => void) | void; export declare type ISubscription = Set; export interface ICreateEffectRunning { execute: ICreateEffectExecute; dependencies: Set; cleanup?: () => void; owner: ICreateEffectRunning | null | undefined; owned: ICreateEffectRunning[]; toRun: boolean; id?: string; } export declare type IStringOrDomElement = string | T; export declare type IGetDomElementFn = (domElement: IStringOrDomElement) => T | null; export declare type DiffedElements = Node & { isNew: boolean; }; export declare type ElementWithListeners = (ChildNode | Element) & { listeners: Map void>>; }; export declare type DOMUpdate = { [key in keyof T]?: Partial | Omit; }; export declare type CSSStyles = Partial | Omit, any>;