// Generated by dts-bundle-generator v9.5.1

export declare class Signal<T> {
	__isSignal: boolean;
	private _value;
	get(): T;
	set(v: T): void;
	private _listeners;
	constructor(v: T);
	sub(fn: (v: T, old: T) => void): () => boolean;
	unsub(fn: (v: T, old: T) => void): boolean;
	destroy(): void;
}
export declare function isSignal(v: any): v is Signal<any>;
export declare function signal<T>(v: T): Signal<T>;
export type IComputedLike<T = any> = IComputeFn<T> | Computed<T>;
export type IComputeFn<T> = () => T;
export declare class Computed<T> {
	__isComputed: boolean;
	private _value;
	private _compute;
	private _dirty;
	private _set?;
	private __itd;
	get(): T;
	set(v: T): void;
	private _listeners;
	private _clearSub;
	constructor(get: IComputeFn<T>, set?: (v: T) => void);
	private _init;
	private _refreshValue;
	sub(fn: (v: T, old: T) => void): () => boolean;
	unsub(fn: (v: T, old: T) => void): boolean;
	destroy(): void;
}
export declare function computed<T>(v: IComputedLike<T>, set?: (v: T) => void): Computed<T>;
export declare function isComputed(v: any): v is Computed<any>;
export declare function watch<T>(v: IComputedLike<T> | Signal<T>, fn: (v: T, old: T) => void): () => void;
export declare function effect<T = void>(fn: IComputeFn<T>): () => void;

export {};
