// swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 5.9.2 (swiftlang-5.9.2.2.56 clang-1500.1.0.2.5)
// swift-module-flags: -target arm64-apple-macos13.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -package-description-version 999.0 -module-link-name XcodeProjectPlugin -module-name XcodeProjectPlugin
// swift-module-flags-ignorable: -enable-bare-slash-regex -user-module-version 22517
import PackagePlugin
import Swift
public struct XcodeProject {
  public let id: XcodeProjectPlugin.XcodeProject.ID
  public typealias ID = Swift.String
  public let displayName: Swift.String
  public let directory: PackagePlugin.Path
  public let filePaths: PackagePlugin.PathList
  public let targets: [XcodeProjectPlugin.XcodeTarget]
}
public struct XcodeTarget {
  public let id: XcodeProjectPlugin.XcodeTarget.ID
  public typealias ID = Swift.String
  public let displayName: Swift.String
  public let product: XcodeProjectPlugin.XcodeProduct?
  public let dependencies: [XcodeProjectPlugin.XcodeTargetDependency]
  public let inputFiles: PackagePlugin.FileList
}
public struct XcodeProduct {
  public let name: Swift.String
  public let kind: XcodeProjectPlugin.XcodeProduct.Kind
  public enum Kind {
    case application
    case executable
    case framework
    case library
    case other(Swift.String)
  }
}
public enum XcodeTargetDependency {
  case target(XcodeProjectPlugin.XcodeTarget)
  case product(any PackagePlugin.Product)
}
public typealias PackageProduct = PackagePlugin.Product
public struct XcodePluginContext {
  public let xcodeProject: XcodeProjectPlugin.XcodeProject
  public let pluginWorkDirectory: PackagePlugin.Path
  public func tool(named name: Swift.String) throws -> PackagePlugin.PluginContext.Tool
}
public protocol XcodeBuildToolPlugin : PackagePlugin.Plugin {
  func createBuildCommands(context: XcodeProjectPlugin.XcodePluginContext, target: XcodeProjectPlugin.XcodeTarget) throws -> [PackagePlugin.Command]
}
public protocol XcodeCommandPlugin : PackagePlugin.Plugin {
  func performCommand(context: XcodeProjectPlugin.XcodePluginContext, arguments: [Swift.String]) throws
}
