// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 6.3.2 effective-5.10 (swiftlang-6.3.2.1.2 clang-2100.0.123.2)
// swift-module-flags: -target x86_64-apple-ios26.5-macabi -enable-objc-interop -enable-library-evolution -module-link-name swiftObservation -swift-version 5 -O -library-level api -enforce-exclusivity=unchecked -target-min-inlining-version min -enable-experimental-feature NoncopyableGenerics2 -enable-experimental-feature SuppressedAssociatedTypes -enable-experimental-feature SE427NoInferenceOnExtension -enable-experimental-feature NonescapableTypes -enable-experimental-feature LifetimeDependence -enable-experimental-feature InoutLifetimeDependence -enable-experimental-feature LifetimeDependenceMutableAccessors -enable-upcoming-feature MemberImportVisibility -enable-experimental-feature Macros -enable-experimental-feature ExtensionMacros -user-module-version 6.3.2.1.3 -module-name Observation
// swift-module-flags-ignorable: -enable-lexical-lifetimes=false -formal-cxx-interoperability-mode=off -interface-compiler-version 6.3.2
import Darwin
import Swift
import _Concurrency
import _SwiftConcurrencyShims
import Darwin.os.lock
@available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
public protocol Observable {
}
@available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
@attached(member, names: named(_$observationRegistrar), named(access), named(withMutation), named(shouldNotifyObservers)) @attached(memberAttribute) @attached(extension, conformances: Observation.Observable) public macro Observable() = #externalMacro(module: "ObservationMacros", type: "ObservableMacro")
@available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
@attached(accessor, names: named(init), named(get), named(set), named(_modify)) @attached(peer, names: prefixed(`_`)) public macro ObservationTracked() = #externalMacro(module: "ObservationMacros", type: "ObservationTrackedMacro")
@available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
@attached(accessor) public macro ObservationIgnored() = #externalMacro(module: "ObservationMacros", type: "ObservationIgnoredMacro")
@available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
public struct ObservationRegistrar : Swift.Sendable {
  public init()
  public func access<Subject, Member>(_ subject: Subject, keyPath: Swift.KeyPath<Subject, Member>) where Subject : Observation.Observable
  public func willSet<Subject, Member>(_ subject: Subject, keyPath: Swift.KeyPath<Subject, Member>) where Subject : Observation.Observable
  public func didSet<Subject, Member>(_ subject: Subject, keyPath: Swift.KeyPath<Subject, Member>) where Subject : Observation.Observable
  public func withMutation<Subject, Member, T>(of subject: Subject, keyPath: Swift.KeyPath<Subject, Member>, _ mutation: () throws -> T) rethrows -> T where Subject : Observation.Observable
}
@available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
extension Observation.ObservationRegistrar : Swift.Codable {
  public init(from decoder: any Swift.Decoder) throws
  public func encode(to encoder: any Swift.Encoder)
}
@available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
extension Observation.ObservationRegistrar : Swift.Hashable {
  public static func == (lhs: Observation.ObservationRegistrar, rhs: Observation.ObservationRegistrar) -> Swift.Bool
  public func hash(into hasher: inout Swift.Hasher)
  public var hashValue: Swift.Int {
    get
  }
}
@available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
public func withObservationTracking<T>(_ apply: () -> T, onChange: @autoclosure () -> @Sendable () -> Swift.Void) -> T
@available(macOS 26.0, iOS 26.0, watchOS 26.0, tvOS 26.0, visionOS 26.0, *)
public struct Observations<Element, Failure> : _Concurrency.AsyncSequence, Swift.Sendable where Element : Swift.Sendable, Failure : Swift.Error {
  public enum Iteration : Swift.Sendable {
    case next(Element)
    case finish
  }
  public init(@_inheritActorContext _ emit: @escaping @isolated(any) @Sendable () throws(Failure) -> Element)
  public static func untilFinished(@_inheritActorContext _ emit: @escaping @isolated(any) @Sendable () throws(Failure) -> Observation.Observations<Element, Failure>.Iteration) -> Observation.Observations<Element, Failure>
  public struct Iterator : _Concurrency.AsyncIteratorProtocol {
    public mutating func next(isolation iterationIsolation: isolated (any _Concurrency.Actor)? = #isolation) async throws(Failure) -> Element?
    @available(iOS 26.0, tvOS 26.0, watchOS 26.0, visionOS 26.0, macOS 26.0, *)
    @_implements(_Concurrency.AsyncIteratorProtocol, Failure) public typealias __AsyncIteratorProtocol_Failure = Failure
  }
  public func makeAsyncIterator() -> Observation.Observations<Element, Failure>.Iterator
  @available(iOS 26.0, tvOS 26.0, watchOS 26.0, visionOS 26.0, macOS 26.0, *)
  public typealias AsyncIterator = Observation.Observations<Element, Failure>.Iterator
  @available(iOS 26.0, tvOS 26.0, watchOS 26.0, visionOS 26.0, macOS 26.0, *)
  @_implements(_Concurrency.AsyncSequence, Failure) public typealias __AsyncSequence_Failure = Failure
}
