import { EventfulBase } from 'asljs-eventful'; import type { ObservableEventsObject, WatchedValues } from './types.js'; export declare class ObservableObject extends EventfulBase> { watch>(property: K, callback: (value: T[K]) => void): () => boolean; watch)[]>(properties: K, callback: (...values: WatchedValues) => void): () => boolean; watch(properties: readonly string[], callback: (...values: any[]) => void): () => boolean; watch(property: string, callback: (value: any) => void): () => boolean; protected setAndEmit>(property: K, previous: T[K], value: T[K], assign: (value: T[K]) => void): boolean; protected emitSet>(property: K, previous: T[K], value: T[K]): boolean; }