// 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 arm64e-apple-macos26.5 -target-variant arm64e-apple-ios26.5-macabi -enable-objc-interop -enable-library-evolution -module-link-name hvf -swift-version 5 -O -library-level api -user-module-version 11 -module-name hvf
// swift-module-flags-ignorable:  -formal-cxx-interoperability-mode=swift-6 -interface-compiler-version 6.3.2
import Swift
import _Concurrency
import _StringProcessing
import _SwiftConcurrencyShims
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public let hvfLibraryVersion: (major: Swift.Int, minor: Swift.Int, patch: Swift.Int)
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public enum AxisExtremum : Swift.Int {
  case minimum
  case maximum
  public init?(rawValue: Swift.Int)
  @available(iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, macOS 15.4, *)
  public typealias RawValue = Swift.Int
  public var rawValue: Swift.Int {
    get
  }
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public enum SegmentBlendType : Swift.UInt8 {
  case curve
  case corner
  case tangent
  case tangentTangent1
  case tangentTangent2
  public init?(rawValue: Swift.UInt8)
  @available(iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, macOS 15.4, *)
  public typealias RawValue = Swift.UInt8
  public var rawValue: Swift.UInt8 {
    get
  }
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public protocol ShapeWriter {
  var axisCount: Swift.Int { get set }
  var totalSegmentCount: Swift.Int { get set }
  var pathSizes: [Swift.UInt16] { get set }
  var blendTypes: [hvf.SegmentBlendType] { get set }
  var masterVector: [Swift.Double] { get set }
  var denseDeltaMatrix: [Swift.Double] { get set }
  func finalize() -> Swift.Bool
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public enum SegmentPoint : Swift.Int {
  case on
  case off
  public init?(rawValue: Swift.Int)
  @available(iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, macOS 15.4, *)
  public typealias RawValue = Swift.Int
  public var rawValue: Swift.Int {
    get
  }
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public enum PointCoordinate : Swift.Int {
  case xOrParallel
  case yOrZero
  public init?(rawValue: Swift.Int)
  @available(iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, macOS 15.4, *)
  public typealias RawValue = Swift.Int
  public var rawValue: Swift.Int {
    get
  }
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.ShapeWriter {
  public func masterOffset(segment: Swift.Int, point: hvf.SegmentPoint, coordinate: hvf.PointCoordinate) -> Swift.Int
  public func denseDeltaOffset(axis: Swift.Int, extremum: hvf.AxisExtremum, segment: Swift.Int, point: hvf.SegmentPoint, coordinate: hvf.PointCoordinate) -> Swift.Int
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public struct CompositeSubpart : Swift.Hashable {
  public var partIndex: Swift.UInt32
  public var treePartOffset: Swift.UInt16
  public var treeAxisOffset: Swift.UInt16
  public init(partIndex: Swift.UInt32, treePartOffset: Swift.UInt16, treeAxisOffset: Swift.UInt16)
  public static func == (a: hvf.CompositeSubpart, b: hvf.CompositeSubpart) -> Swift.Bool
  public func hash(into hasher: inout Swift.Hasher)
  public var hashValue: Swift.Int {
    get
  }
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public struct CompositeSubpartTranslation : Swift.Hashable {
  public var dx: Swift.Float
  public var dy: Swift.Float
  public init(dx: Swift.Float, dy: Swift.Float)
  public static func == (a: hvf.CompositeSubpartTranslation, b: hvf.CompositeSubpartTranslation) -> Swift.Bool
  public func hash(into hasher: inout Swift.Hasher)
  public var hashValue: Swift.Int {
    get
  }
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public struct CompositeExtremumIndex : Swift.Hashable {
  public var row: Swift.UInt16
  public var column: Swift.UInt16
  public init(row: Swift.UInt16, column: Swift.UInt16)
  public static func == (a: hvf.CompositeExtremumIndex, b: hvf.CompositeExtremumIndex) -> Swift.Bool
  public func hash(into hasher: inout Swift.Hasher)
  public var hashValue: Swift.Int {
    get
  }
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public protocol CompositeWriter {
  var axisCount: Swift.Int { get set }
  var subpartCount: Swift.Int { get set }
  var totalPartCount: Swift.Int { get set }
  var totalAxisCount: Swift.Int { get set }
  var maximumExtremumCount: Swift.Int { get set }
  var subparts: [hvf.CompositeSubpart] { get set }
  var extremumCSCColumnStarts: [Swift.UInt16] { get set }
  var masterCSCRowIndices: [Swift.UInt16] { get set }
  var extremumCSCRowIndices: [Swift.UInt16] { get set }
  var masterCSCAxisValues: [Swift.Float] { get set }
  var extremumCSCAxisValues: [Swift.Float] { get set }
  var masterTranslationIndices: [Swift.UInt16] { get set }
  var masterTranslations: [hvf.CompositeSubpartTranslation] { get set }
  var masterRotationIndices: [Swift.UInt16] { get set }
  var masterRotations: [Swift.Float] { get set }
  var extremumTranslationIndices: [hvf.CompositeExtremumIndex] { get set }
  var extremumTranslations: [hvf.CompositeSubpartTranslation] { get set }
  var extremumRotationIndices: [hvf.CompositeExtremumIndex] { get set }
  var extremumRotations: [Swift.Float] { get set }
  func finalize() -> Swift.Bool
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.CompositeWriter {
  public func column(axis: Swift.Int, extremum: hvf.AxisExtremum) -> Swift.Int
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public protocol PartGenerator {
  func makeShape(_ partIndex: Swift.Int) -> any hvf.ShapeWriter
  func makeComposite(_ partIndex: Swift.Int) -> any hvf.CompositeWriter
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public enum PartResult {
  case shape(any hvf.ShapeWriter)
  case composite(any hvf.CompositeWriter)
  case notFound
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public typealias CustomPartLoader = (Swift.Int, any hvf.PartGenerator) -> hvf.PartResult
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public class HVGLPartLoader {
  public var tableVersion: (major: Swift.Int, minor: Swift.Int) {
    get
  }
  public var glyphCount: Swift.Int {
    get
  }
  public var partCount: Swift.Int {
    get
  }
  public init?(hvglTable: Swift.UnsafeRawBufferPointer, hvpmTable: Swift.UnsafeRawBufferPointer? = nil)
  @objc deinit
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
public class PartRenderer {
  public struct Translation : Swift.Hashable {
    public var dx: Swift.Double
    public var dy: Swift.Double
    public init(dx: Swift.Double, dy: Swift.Double)
    public static func == (a: hvf.PartRenderer.Translation, b: hvf.PartRenderer.Translation) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public var hashValue: Swift.Int {
      get
    }
  }
  public enum Instruction {
    case beginPart(id: Swift.Int, name: Swift.String?)
    case beginPath
    case addPoint(hvf.PartRenderer.Point)
    case addLine(hvf.PartRenderer.Point)
    case addQuad(off: hvf.PartRenderer.Point, on: hvf.PartRenderer.Point)
    case addCubic(cp1: hvf.PartRenderer.Point, cp2: hvf.PartRenderer.Point, on: hvf.PartRenderer.Point)
    case closePath
    case endPath
    case endPart(id: Swift.Int, name: Swift.String?)
    case stop
  }
  public enum Action {
    case `continue`
    case skip
    case stop
    public static func == (a: hvf.PartRenderer.Action, b: hvf.PartRenderer.Action) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public var hashValue: Swift.Int {
      get
    }
  }
  public struct Point : Swift.Hashable {
    public var x: Swift.Double
    public var y: Swift.Double
    public init(x: Swift.Double, y: Swift.Double)
    public static func == (a: hvf.PartRenderer.Point, b: hvf.PartRenderer.Point) -> Swift.Bool
    public func hash(into hasher: inout Swift.Hasher)
    public var hashValue: Swift.Int {
      get
    }
  }
  @_hasMissingDesignatedInitializers public class AxisValues : Swift.MutableCollection {
    public typealias Element = Swift.Double
    public typealias Index = Swift.Int
    public var isNested: Swift.Bool {
      get
    }
    final public let startIndex: Swift.Int
    public var endIndex: hvf.PartRenderer.AxisValues.Index {
      get
    }
    public func index(after: hvf.PartRenderer.AxisValues.Index) -> hvf.PartRenderer.AxisValues.Index
    public subscript(index: Swift.Int) -> Swift.Double {
      get
      set
    }
    public func blendedValue(axis index: Swift.Int) -> Swift.Double
    @available(iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, macOS 15.4, *)
    public typealias Indices = Swift.DefaultIndices<hvf.PartRenderer.AxisValues>
    @available(iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, macOS 15.4, *)
    public typealias Iterator = Swift.IndexingIterator<hvf.PartRenderer.AxisValues>
    @available(iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, macOS 15.4, *)
    public typealias SubSequence = Swift.Slice<hvf.PartRenderer.AxisValues>
    @objc deinit
  }
  @_hasMissingDesignatedInitializers public class PartParameters {
    final public let partIndex: Swift.Int
    public var axisValues: hvf.PartRenderer.AxisValues {
      get
    }
    public var translation: hvf.PartRenderer.Translation {
      get
      set
    }
    public var rotation: Swift.Double {
      get
      set
    }
    public var blendedTranslation: hvf.PartRenderer.Translation {
      get
    }
    public var blendedRotation: Swift.Double {
      get
    }
    public var subparts: hvf.PartRenderer.Subparts {
      get
    }
    @objc deinit
  }
  public struct Subparts : Swift.RandomAccessCollection {
    public typealias Element = hvf.PartRenderer.PartParameters
    public typealias Index = Swift.Int
    public let startIndex: Swift.Int
    public var endIndex: hvf.PartRenderer.Subparts.Index {
      get
    }
    public func index(after: hvf.PartRenderer.Subparts.Index) -> hvf.PartRenderer.Subparts.Index
    public subscript(index: Swift.Int) -> hvf.PartRenderer.PartParameters {
      get
    }
    @available(iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, macOS 15.4, *)
    public typealias Indices = Swift.Range<hvf.PartRenderer.Subparts.Index>
    @available(iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, macOS 15.4, *)
    public typealias Iterator = Swift.IndexingIterator<hvf.PartRenderer.Subparts>
    @available(iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, macOS 15.4, *)
    public typealias SubSequence = Swift.Slice<hvf.PartRenderer.Subparts>
  }
  public init(hvglLoader: hvf.HVGLPartLoader, reusable: Swift.Bool = false)
  public init(custom: @escaping hvf.CustomPartLoader, reusable: Swift.Bool = false)
  public var partIndex: Swift.Int {
    get
    set
  }
  public var partAxisCount: Swift.Int {
    get
  }
  public var parameters: hvf.PartRenderer.PartParameters {
    get
  }
  public var blendedAxisValueBounds: Swift.ClosedRange<Swift.Double> {
    get
  }
  public func clearPartCache()
  public func render(to context: @escaping (hvf.PartRenderer.Instruction) -> hvf.PartRenderer.Action) -> Swift.Bool
  @objc deinit
}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.AxisExtremum : Swift.Equatable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.AxisExtremum : Swift.Hashable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.AxisExtremum : Swift.RawRepresentable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.SegmentBlendType : Swift.Equatable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.SegmentBlendType : Swift.Hashable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.SegmentBlendType : Swift.RawRepresentable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.SegmentPoint : Swift.Equatable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.SegmentPoint : Swift.Hashable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.SegmentPoint : Swift.RawRepresentable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.PointCoordinate : Swift.Equatable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.PointCoordinate : Swift.Hashable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.PointCoordinate : Swift.RawRepresentable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.PartRenderer.Action : Swift.Equatable {}
@available(macOS 15.4, iOS 18.4, tvOS 18.4, watchOS 11.4, visionOS 2.4, *)
extension hvf.PartRenderer.Action : Swift.Hashable {}
