*/ abstract class ThreadSafe implements \IteratorAggregate{ /** * @template TReturn * @param \Closure() : TReturn $function * @param mixed ...$args * @return TReturn */ public function synchronized(\Closure $function, mixed ...$args) : mixed{} } /** * @template TKey of array-key * @template TValue * @implements \ArrayAccess */ final class ThreadSafeArray extends ThreadSafe implements \Countable, \ArrayAccess{ /** * @return TValue|null */ public function pop() : mixed{} /** * @return TValue|null */ public function shift() : mixed{} }