@threlte/core
Version:
A 3D framework for the web, built on top of Svelte and Three.js
13 lines (12 loc) • 628 B
TypeScript
import { type Readable } from 'svelte/store';
type Dependency = Readable<any> | any;
type Dependencies = [Dependency, ...Array<Dependency>];
type ExtractReadableType<T> = T extends Readable<infer U> ? U : T;
type CallbackArgs<D extends Dependencies> = {
[K in keyof D]: ExtractReadableType<D[K]>;
};
type Callback<D extends Dependencies> = (deps: CallbackArgs<D>) => void | (() => void);
export declare const observe: (<Deps extends Dependencies>(dependencies: () => Deps, callback: Callback<Deps>) => void) & {
pre: <Deps extends Dependencies>(dependencies: () => Deps, callback: Callback<Deps>) => void;
};
export {};