// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. #ifndef OBJECTIVE_C_SRC_OBSERVER_H_ #define OBJECTIVE_C_SRC_OBSERVER_H_ #import #import /** * Protocol for observing changes to values of objects. */ @protocol Observer @required - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context; @end /** * Represents a single KVO observation. Each observation creates a new * DOBJCObservation, even for the same observer, observed object, and keyPath. */ @interface DOBJCObservation : NSObject - (instancetype)initForKeyPath:(NSString*)keyPath ofObject:(id)object withObserver:(id)observer options:(NSKeyValueObservingOptions) options context:(void *)context; - (void)remove; - (void)dealloc; - (void*)debugObserver; @end #endif // OBJECTIVE_C_SRC_OBSERVER_H_