protected function interpretDeleteCondition($condition)
    {
        // Allow pipe symbol to split strategies
        if (false !== strpos($condition, '|')) {
            $condition = explode('|', $condition);
        }

        // Normalize arrays, handle each string condition separately
        if (is_array($condition)) {

            $normalized = [];

            foreach ($condition as $partialCondition) {
                $normalized = array_merge($normalized, $this->interpretDeleteCondition($partialCondition));
            }

            return $normalized;
        }

        // Split strategy & parameters
        if (false !== strpos($condition, ':')) {
            list($strategy, $parameters) = explode(':', $condition, 2);
            $parameters = explode(',', $parameters);
        } else {
            $strategy   = $condition;
            $parameters = [];
        }

        /** @var string $strategy */
        return [ $strategy => $parameters ];
    }