1<?php
2
3namespace GuzzleHttp\Handler;
4
5use Psr\Http\Message\RequestInterface;
6
7interface CurlFactoryInterface
8{
9    /**
10     * Creates a cURL handle resource.
11     *
12     * @param RequestInterface $request Request
13     * @param array            $options Transfer options
14     *
15     * @throws \RuntimeException when an option cannot be applied
16     */
17    public function create(RequestInterface $request, array $options): EasyHandle;
18
19    /**
20     * Release an easy handle, allowing it to be reused or closed.
21     *
22     * This function must call unset on the easy handle's "handle" property.
23     */
24    public function release(EasyHandle $easy): void;
25}
26