         )
     }
     
+    /**
+     * Attempts to generate a `Pact.Interaction` and appends it to list of known interactions.
+     */
     open func generateInteraction(
         providerState: String,
         description: String,

    }
}

extension PactStubProvider: URLSessionProvider {
    
    public func session(for urlRequest: URLRequest) -> URLSession? {
        let matchingInteractions = pact.interactions.filter { $0.matches(request: urlRequest, matchingOptions: [.url]) }


import Foundation

/**
 * Concrete `URLSessionProvider` implementation that generates a Pact based on provided details and allows for adding
 * interactions (request, response pairs). `URLSessionProvider` interface provides `URLSession`s with stubbed responses
 * for requests matching the ones specified in provided interactions.
 *
 * More information about Pact specification can be found here: https://docs.pact.io/documentation/how_does_pact_work.html
 */
open class PactSessionProvider {
    
    public struct UrlGenerationError: Error {}
    public struct UrlResponseGenerationError: Error {}
