import type { ReactiveControllerHost } from 'lit'; import { RefObject } from 'preact'; import { Context, Props } from 'js-widgets'; declare type ContextType> = C extends Context ? T : never; export { afterMount, consume, create, createMemo, createTicker, effect, getRefresher, mutable, optimizeUpdates, preset, stateFn, stateObj, stateObj as state, stateRef, stateVal, stateVal as atom, interval, handleMethods, handlePromise, withDefaults }; declare type Getter = () => T; declare type Updater = Exclude | ((value: T) => U); declare type Setter = (updater: Updater) => void; declare type StateObjSetter> = { (updater: Updater>): void; } & { [K in keyof T]: (updater: Updater) => void; }; declare function withDefaults

>(props: P, defaults: D | (() => D)): P & D; declare function preset

>(props: P, defaults: D | (() => D)): asserts props is P & D; declare function optimizeUpdates(pred?: () => boolean): void; declare function getRefresher(): (force?: boolean) => void; declare function stateVal(value: T): [Getter, Setter]; declare function stateObj>(values: T): [T, StateObjSetter]; declare function stateFn(initialValue: T): { (): T; (updater: Updater): void; }; declare function stateRef(initialValue: T): { current: T; set(value: T): void; map(mapper: (value: T) => T): void; }; declare function mutable>(initialState: T): T; declare function createMemo A>(getValue: (...args: ReturnType) => T, getDeps: G): { readonly value: T; }; declare function afterMount(action: () => void | (() => void)): void; declare function effect(action: () => void | undefined | null | (() => void), getDeps?: null | (() => any[])): void; declare function consume(context: Context): () => T; declare function consume>>(contexts: T): { [K in keyof T]: ContextType; }; declare function handleMethods>(getMethodsRef: () => RefObject | undefined, methods: M): void; declare function interval(callbackOrRef: (() => void) | { current: () => void; }, delayOrGetDelay: number | (() => number)): void; declare type PromiseRes = { result: null; error: null; state: 'pending'; } | { result: T; error: null; state: 'resolved'; } | { result: null; error: Error; state: 'rejected'; }; declare function handlePromise(getPromise: () => Promise, getDeps?: () => any[]): PromiseRes; declare function createTicker(): () => Date; declare function createTicker(mapper: (time: Date) => T): () => T; declare type ControllerClass = { new (host: ReactiveControllerHost, ...args: A): T; }; declare function create, A extends any[]>(controllerClass: C, ...args: A): InstanceType;