import { SignalListener } from "./parts/listener.js"; import { accessed } from "./parts/accessed_symbol.js"; export declare class Signal { #private; static unwrap: (anything: any) => A extends Signal ? V_1 : A; [accessed]: boolean; constructor(v: V); /** @deprecated use `on` method instead */ subscribe(listener: SignalListener): () => void; on(listener: SignalListener): () => void; once(listener: SignalListener): () => void; clear(): void; publish(): Promise; get wait(): Promise; get value(): V; set value(v: V); /** set the signal value and publish, only if a deep change is detected (uses deep.equal to scan whole object trees) */ setDeep(v: V): void; /** set the signal value and publish, even if there's no change detected */ setAndPublish(v: V): void; /** set the signal value, but do not publish (perhaps to prevent views rerendering) */ setWithoutPublish(v: V): void; /** @deprecated use `setWithoutPublish` instead */ setValueNoPublish(v: V): void; }