import { Accessor, Setter } from "./signal.js"; declare global { interface SymbolConstructor { readonly observable: symbol; } } interface Observable { subscribe(observer: ObservableObserver): { unsubscribe(): void; }; [Symbol.observable](): Observable; } export type ObservableObserver = ((v: T) => void) | { next?: (v: T) => void; error?: (v: any) => void; complete?: (v: boolean) => void; }; /** * creates a simple observable from a signal's accessor to be used with the `from` operator of observable libraries like e.g. rxjs * ```typescript * import { from } from "rxjs"; * const [s, set] = createSignal(0); * const obsv$ = from(observable(s)); * obsv$.subscribe((v) => console.log(v)); * ``` * description https://www.solidjs.com/docs/latest/api#observable */ export declare function observable(input: Accessor): Observable; export declare function from(producer: ((setter: Setter) => () => void) | { subscribe: (fn: (v: T) => void) => (() => void) | { unsubscribe: () => void; }; }): Accessor; export {};